|
10鱼币
- #include <stdio.h>
- int main(){
- int zippo[4][3] = {{2,4},{6,8},{1,3},{5,7}};
- int (*pz)[2] = zippo;
- printf("zippo = %p\n",zippo);
- printf("zippo[0] = %p",zippo[0]);
-
- }
复制代码
这是输出:
zippo = 000000000022FE00
zippo[0] = 000000000022FE00
为什么相等呢? |
最佳答案
查看完整内容
zippo虽然值和zippo[0]还有&zippo[0][0]一样,但含义是不一样的,你看我给你的小程序就知道了。
zippo是表示整个二维数组的指针,指向的是整个二维数组,只不过这个二维数组是在这个地址(这个地址也是zippo[0][0]的地址)开始的。所以其大小(sizeof)是整个数组的大小。同样,zippo[0]是一维数组(zippo[4])[3]的指针,所以其大小是8*3,而&zippo[0][0]是第一个元素的这个int型数据的指针,大小就是8.
所以,zippo[0]不能表 ...
|