C++:为什么最后一个输出不是地址以及如何获取值 9


#include <iostream>
using namespace std;
int main() {
    int a[3][4]={{4,8,13,9},{1,6,9,3},{0,2,7,10}};
    cout<< (a+1)<<endl;
    cout<<*(a+1)<<endl;
    cout<<(*(a+1)+2)<<endl;
    cout<< *(*(a+1)+2);
    return 0;
}

我的输出是

0x23fe30
0x23fe30
0x23fe38
9

记住pointer符号2D array等价程度,例如如果您有像char arr[row][col]这样的2D array,那么要访问每个元素,您将arr[row][col]并且

arr[row][col] == *(*(arr + row ) + col)

在你的情况下,row = 1col = 2然后找到a[1][2]是什么? 它的9 .

最新更新