取消引用指针会给出一个地址

时间:2015-02-03 15:08:08

标签: c++ pointers multidimensional-array

我有这段代码片段

    const int col= 5;const int row= 5;

    int a[row][col] = {0};

    int (*p)[col] ;

    p = a;

这些陈述打印相同的地址

    cout <<p;
    cout << endl;
    cout << *p;  

在我看来,p指向5 ints的数组,取消引用它 应该给出第一个似乎并非如此的价值 救命!

1 个答案:

答案 0 :(得分:6)

  

因为p指向5 ints

的数组

这是正确的。

  

取消引用它应该给出第一个值

不,它的类型是&#34;指向数组的指针&#34 ;;取消引用会给出&#34; array&#34;,当你对它做任何事情时会衰减到int*指针 - 包括打印它。

如果您有指向int

的指针
int * p = a;

然后*p确实会给出第一个数组元素。