小编Sai*_*eep的帖子

指向2D数组的指针

我有一个2D数组(int s[4][2]),我创建了一个指针int (*p)[2].

现在为指针p分配了for循环中第一行元素的地址.

for (int i = 0; i<4; i++)
p = &s[i];
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试使用解除引用来编写数组元素数据时,我得到了错误的值.

printf ("%d \n", *p)
Run Code Online (Sandbox Code Playgroud)

但是,如果我创建另一个指针并与前一个指针链接

int *ptr = p;
Run Code Online (Sandbox Code Playgroud)

和取消引用指针ptr我得到正确的值.

printf ("%d \n", *ptr)
Run Code Online (Sandbox Code Playgroud)

当两个指针指向同一个地址时,为什么一个指针(*ptr)按预期工作而另一个(*p)不返回预期值?

c arrays pointers

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

标签 统计

arrays ×1

c ×1

pointers ×1