|
45鱼币
本帖最后由 qiu064987 于 2021-8-20 15:26 编辑
这是初始化第一个元素的地址,后面的值也都赋值为0;
这是数组越界报错,
那么为什么?
也报错啊!a[9] = 0;就可以,是涉及指针吗?数组名的是一个地址信息,是第一个元素的地址,因此{0}赋值给了第一个元素的地址,那么a[9]也是一个地址啊,不是也可以用{0}赋值给它
本帖最后由 小小的窝 于 2021-8-20 16:41 编辑
iint a[10] = {10}就相当于int a[10] = {10,0,0,0,0,0,0,0,0,0};这里的a[10]指的是一个数组,它可以被看作是一个首地址,{10}或者说{10,0,0,0,0,0,0,0,0,0}也是数组,而a[9] = {0};这里的a[9]是数组里的一个元素,也是一个变量,它不应该被看作是地址,而{0}还是一个数组,就相当于用数组给一个变量赋值,所以会报错
|
最佳答案
查看完整内容
iint a[10] = {10}就相当于int a[10] = {10,0,0,0,0,0,0,0,0,0};这里的a[10]指的是一个数组,它可以被看作是一个首地址,{10}或者说{10,0,0,0,0,0,0,0,0,0}也是数组,而a[9] = {0};这里的a[9]是数组里的一个元素,也是一个变量,它不应该被看作是地址,而{0}还是一个数组,就相当于用数组给一个变量赋值,所以会报错
|