小编Spa*_*awN的帖子

int (*ptr)[4] 的真正含义是什么,它与 *ptr 有何不同?

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 实际指向的位置。或者他们只是指向相同。但它们是不同的东西,我肯定知道。

c arrays pointers memory-address

4
推荐指数
1
解决办法
630
查看次数

标签 统计

arrays ×1

c ×1

memory-address ×1

pointers ×1