|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 1613551 于 2022-5-13 16:27 编辑
小甲鱼这个程序我没完全懂,第六行的 int (*p)[3],是一个指向带有三个元素的数组的指针,然后array的地址也是指向带有三个元素的数组的指针,把array赋值给p,不是应该是把0, 1, 2赋值给了p,而后面的3、4、5没赋值过去吗?而这个程序的第11行也就是
printf("*(*(p+1)+2): %d\n", *(*(p+1)+2));,却也可以和第12行和第13行一样打印出5
- #include <stdio.h>
- int main()
- {
- int array[2][3] = {{0, 1, 2}, {3, 4, 5}};
- int (*p)[3] = array;
- printf("**(p+1): %d\n", **(p+1));
- printf("**(array+1): %d\n", **(array+1));
- printf("array[1][0]: %d\n", array[1][0]);
- printf("*(*(p+1)+2): %d\n", *(*(p+1)+2));
- printf("*(*(array+1)+2): %d\n", *(*(array+1)+2));
- printf("array[1][2]: %d\n", array[1][2]);
- return 0;
- }
复制代码
|
|