int (*p)[4] , *ptr;
int a[4] = {10,20,30,40};
printf("%p\n%p\n%p",&a,a,&a[0]);
p = &a ;
//p=a; gives error
//ptr = &a; gives error
ptr = a;
Run Code Online (Sandbox Code Playgroud)
输出:
0x7ffd69f14710
0x7ffd69f14710
0x7ffd69f14710
Run Code Online (Sandbox Code Playgroud)
我试图了解 what a、&a和&a[0]返回及其起始变量的内存地址。那么,为什么我会在其中一些作业中出错?
我的意思是,如果p = &a = 0x7ff...有效,为什么不p = a = 0x7ff..呢?
如果可能的话,任何人都可以通过框图让我理解这个 p 和 ptr 实际指向的位置。或者他们只是指向相同。但它们是不同的东西,我肯定知道。