【发布时间】:2014-01-31 21:12:09
【问题描述】:
我有一个谜题:
int *a=*b;
a[1]=3;
a[2]=5
a 是一个指针数组,赋值为 b。在我的理解中,a[] 应该是一个地址,那么为什么在实践中我们可以为指针(在本例中为 a[])指向的位置赋值呢?有解释吗?
【问题讨论】:
-
a[1]与写*(a + 1)完全相同。显然你可以写*a = 3,因为a是int*,所以你也可以写*(a + 1) = 3,所以你也可以写a[1] = 3。 -
a不是指针数组。a是一个指针。 -
什么是*(a+1)?你的意思是*a[1]?
-
不,我的意思正是我写的。试试看,然后找一些指针教程来更新你的知识。
-
阅读comp.lang.c FAQ的第6部分。