代码:
int p[10][10];
int **q = p;
printf("%0x\n%0x\n", &q, q);
printf("----------------------------------------\n");
printf("%0x\n%0x\n%0x\n%0x\n%0x\n", &p, p, &p[0], p[0], &p[0][0]);
printf("----------------------------------------\n");
printf("%0x\n%0x\n%0x\n%0x\n%0x\n%0x\n", &p, p+1, &p[1], p[1], &p[1][0], &p[0][1]);
运行结果:
8f9e07c8
8f9e0810
----------------------------------------
8f9e0810
8f9e0810
8f9e0810
8f9e0810
8f9e0810
----------------------------------------
8f9e0810
8f9e0838
8f9e0838
8f9e0838
8f9e0838
8f9e0814
&(&p)或 &(&q)会编译错误
结论:

本文通过具体示例代码展示了C语言中指针与数组之间的关系及其内存地址的表现形式,帮助读者深入理解指针和数组如何相互作用。
1096

被折叠的 条评论
为什么被折叠?



