为数组中的第一个元素赋值时,为什么必须指定索引号?

Jak*_*ake 0 c c++

为数组中的第一个元素赋值时,为什么必须指定索引号?假设我们有这个数组:

int childer[] = {10, 30, 50};
Run Code Online (Sandbox Code Playgroud)

那么这两个childerchilder[0]会访问数组的第一个元素,那么你为什么不能做childer = 15;

ala*_*ain 5

数组类似于指针.例如,数组在传递给函数时会衰减到指针,或者甚至在将运算符[]和一元数*应用于它们时会衰减(感谢StoryTeller).所以

childer[0]
Run Code Online (Sandbox Code Playgroud)

相当于

*childer
Run Code Online (Sandbox Code Playgroud)

你可以做到

*childer = 15;
Run Code Online (Sandbox Code Playgroud)

将第一个元素设置为15.


childer
Run Code Online (Sandbox Code Playgroud)

另一方面是一样的

&childer[0]
Run Code Online (Sandbox Code Playgroud)

  • 它们经常衰变而不仅仅是函数参数.`[]`和一元`*`实际上只定义****指针操作数.阵列在执行算术之前衰减. (2认同)