【发布时间】:2016-10-25 10:40:59
【问题描述】:
我知道数组会衰减为指针。结果,因为它的行为类似于指针,所以它本质上可以传递给带有需要内存地址的参数的函数,而无需使用与号。例如:
char name[10];
scanf("%s", name);
是正确的。
但是,假设我只想填写'name'数组的第一个元素,为什么不能写成
scanf("%c", name[0]);
但必须在 'name[0]' 前面加上 & 号?这是否意味着单个数组元素不会衰减为指针并且不保存它们的单个内存地址,而不是它们的整个数组对应物?
【问题讨论】:
-
name[0]如果返回数组的第一个元素的值,怎么能衰减为指针????... -
啊,我从来没有想过数组元素返回值而不是内存地址,因此不是指针作为解释。谢谢!
-
@TruthOrDare 也许你应该看看Array of Pointers
标签: c arrays pointers addressof