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

时间:2018-04-11 05:27:46

标签: c++

#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

1 个答案:

答案 0 :(得分:0)

请记住2D array等效pointer符号的含义,例如 如果你有2D array之类的char arr[row][col],则可以访问您要执行的每个元素arr[row][col]

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

根据您的情况row = 1col = 2,然后找到a[1][2]将会是什么?它的9