这端C代码哪错了?

发布网友 发布时间:2022-04-21 07:17

我来回答

5个回答

热心网友 时间:2022-06-18 16:07

char array[1];
这样定义的是一个字符数组,可以给用字符串的地址给数组赋初值,如char array[]="a",也可以用单个字符分别赋初值如char array[1]={'a'},但是不能像题中一样用单个字符给数组赋初值。
第二种情况,因为已经定义了array为字符数组,array[1]表示的是一个元素,一个字符元素可以用单个字符赋值,这里虽然没有语法错误,但是这个数组只有一个元素,而array[1]表示第二个元素,所以这里越界了。

热心网友 时间:2022-06-18 16:07

char array[1]是定义一个数组,虽然只有一个元素但在数组初始化时必须加上{},
即char array[1]={'a'};
而array[1]是其中一个元素,可以直接初始化,array[1]='a';
不过,很显然该数组只有一个元素array[0],array[1]这个引用已经越界了,大多数编译器也是会报错的,可能老的编译器不报错。

热心网友 时间:2022-06-18 16:08

因为现在字符数组定义和初始化不能一起。要分开写!谢谢,望采纳!

热心网友 时间:2022-06-18 16:08

char array[1];声明的是一个数组,所以初始化必须是char array[1]={'a'}.

热心网友 时间:2022-06-18 16:09

char array[1] = {'a'};
char array[2] = {'a', 'b'};

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com