首页 新闻 会员 周边 捐助

C语言这句代码哪错了?

0
[待解决问题]

//这句代码拿错了?
char array[1] = 'a';

//为什么下变代码可以编译通过
char array[1];
array[1] = 'a';

好的嗯呢的主页 好的嗯呢 | 菜鸟二级 | 园豆:204
提问于:2021-08-18 22:20

数组声明并初始化的话应该是这样char array[1] = {'a'},你少了个大括号
char array[1]; 声明了一个长度为1的数组
array[1] = 'a' 初始化数组索引1的值为字符a

锦笙 3年前
< >
分享
所有回答(2)
0

双引号

大臣 | 园豆:202 (菜鸟二级) | 2021-08-19 00:27

你是不是看错了?这是C,类型是char,双引号?

支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2021-08-19 09:04

@顾晓北: C语言里面双引号表示字符串,单引号表示字符,所以上面的提问里面有两个地方不对。
1、如果数据声明是“char array[1];”,那实际引用的时候只能用“array[0]”,用“array[1]”越界了。
2、如果想表示一个只有单个字符'a'字符串,一般定义和初始化是这样的“char array[2] = "a"”,或者“char array[] = "a"”

支持(1) 反对(0) 周荣华 | 园豆:213 (菜鸟二级) | 2021-08-20 10:05
0

声明语句中赋值是给了 char [] 类型的变量.
下面的那个赋值语句是赋给了 一个char类型的变量.

咖啡猫二世 | 园豆:208 (菜鸟二级) | 2021-08-19 11:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册