这段C代码哪里错了
发布网友
发布时间:2022-04-21 03:02
我来回答
共5个回答
热心网友
时间:2022-06-17 15:31
char array[1];
这样定义的是一个字符数组,可以给用字符串的地址给数组赋初值,如char array[]="a",也可以用单个字符分别赋初值如char array[1]={'a'},但是不能像题中一样用单个字符给数组赋初值。
第二种情况,因为已经定义了array为字符数组,array[1]表示的是一个元素,一个字符元素可以用单个字符赋值,这里虽然没有语法错误,但是这个数组只有一个元素,而array[1]表示第二个元素,所以这里越界了。
热心网友
时间:2022-06-17 15:31
char array[1]是定义一个数组,虽然只有一个元素但在数组初始化时必须加上{},
即char array[1]={'a'};
而array[1]是其中一个元素,可以直接初始化,array[1]='a';
不过,很显然该数组只有一个元素array[0],array[1]这个引用已经越界了,大多数编译器也是会报错的,可能老的编译器不报错。
热心网友
时间:2022-06-17 15:32
因为现在字符数组定义和初始化不能一起。要分开写!谢谢,望采纳!
热心网友
时间:2022-06-17 15:32
char array[1];声明的是一个数组,所以初始化必须是char array[1]={'a'}.
热心网友
时间:2022-06-17 15:33
char array[1] = {'a'};
char array[2] = {'a', 'b'};