就不作详细总结了,具体情况请看运行结果:
3 int main()
4 {
5 int a[3]={1,2,3};
6 int (*p)[3]=&a;
7 //int (*p)[3]=a;//效果同上
8 int* m=a;
9 int* n=&a;
10 printf("&a[1]=%d\n",&a[1]);
11 printf("*(*p+1)=%d **p=%d\n",*(*p+1),**p);
12 printf("*((int*)(p+1)-1)=%d\n",*((int*)(p+1)-1));
13 printf("*(p+1)=%d\n",*(p+1));
14 printf("*p+1=%d\n",*p+1);
15 printf("*p=%d\n",*p);
16 printf("*m=%d\n",*m);
17 printf("*n=%d\n",*n);
18 if(m==n)
19 {
20 printf("相等\n");
21 }
22 return0;
23 }
&a[1]=1457073184
*(*p+1)=2 **p=1
*((int*)(p+1)-1)=3
*(p+1)=1457073192
*p+1=1457073184
*p=1457073180
*m=1
*n=1
相等
本文深入探讨了C语言中指针的基本概念、内存访问方式以及常见操作,通过具体实例展示了如何使用指针进行高效的数据操作。
753

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



