有个数组的问题
本帖最后由 qiu064987 于 2021-8-20 15:26 编辑int a = {10}
这是初始化第一个元素的地址,后面的值也都赋值为0;
int a;
a = {0};
这是数组越界报错,
那么为什么?
int a;
a = {0};
也报错啊!a = 0;就可以,是涉及指针吗?数组名的是一个地址信息,是第一个元素的地址,因此{0}赋值给了第一个元素的地址,那么a也是一个地址啊,不是也可以用{0}赋值给它 本帖最后由 小小的窝 于 2021-8-20 16:41 编辑
iint a = {10}就相当于int a = {10,0,0,0,0,0,0,0,0,0};这里的a指的是一个数组,它可以被看作是一个首地址,{10}或者说{10,0,0,0,0,0,0,0,0,0}也是数组,而a = {0};这里的a是数组里的一个元素,也是一个变量,它不应该被看作是地址,而{0}还是一个数组,就相当于用数组给一个变量赋值,所以会报错 a = {0};这样的语句只能在初始化时使用,赋值时使用会报错 数组的下标是从 0 开始的,
int a; 其实最大的是a,
而且 int a = {10},就只是 a = 10,其他都为0
好像声明的时候就要赋值了,如果后面 a = {0}; 会报错 你初始化时才能用{} 赋值 默认为0
而你
a 是个整型赋值号右侧也只能是整型 不能{}
赋值时只能从a到a共十个数,没有a,即使赋成0也不行。刚开始声明变量时才可以用a={10}。
初始化时的a,表示a的长度为10,非初始化的时候a表示a的第11个数据,但int a这个数组只有a~a这10个数,
页:
[1]