C语言合法定义问题。

来源:百度知道 编辑:UC知道 时间:2024/06/14 10:18:01
合法的数组定义是( )。
①int a[]={"string"}; ②int a[5]={0,1,2,3,4,5};
③char a={"string"}; ④char a[]={0,1,2,3,4,5};
无法判断是1还是4,请帮忙下,需解释,谢谢!

①int为整型数组,不能容纳字符串数组,不正确
②int a[5]只能容纳5个数组元素,而0,1,2,3,4,5共有6个,不正确
③不能把一个字符串赋值给一个字符 不正确
④把0,1,2,3,4,当作字符赋值给字符数组a[],这里的0,1,2,3,4代表字符,不代表数字,正确

2正确。

1整数和字符串不相容。
3字符和字符串不相容。
4字符型要用单引号,否则就是数字了。

4正确

2号题越界了,声明的大小是5,但是里面有6个数。
4是对的,char与int没有本质的区别,只是int是4字节,char为1字节,0-127都是ASCII码

4.
像1和3那样的定义是不行的,在C语言里定义一个数组只能一个一个的指定每个元素的值。1肯定是错的,因为是int整型。2错是因为越界。

选2,不是1或4,1:int 是整型,不对,3:char a 是字符,不能赋字符串
4: 如要赋值应该写成 char a[]={'0','1','2','3','4','5'};

4正确