VC++6.0 #include<stdio.h> int main (void) { char ch[5]={'*','*','*&ap
答案:3 悬赏:80
解决时间 2021-02-20 19:40
- 提问者网友:我稀罕你
- 2021-02-20 11:37
输出是:*****烫汤
为何不是:*****
后面为何会出现汉字呢?
最佳答案
- 二级知识专家网友:野性且迷人
- 2021-02-20 13:09
初始化时字符串不能直接赋值给变量,而是通过数组存储的,一般有两大类方法;;而你在输出的时候;,'*','、好好再看看课本,选择第二种输出方法,它针对的是字符串,然而现在找不到结束符号,于是出现了不可理解汉字;同时可以明白; 初始化后;0',获得的不是字符串,而只能看作字符数组,因为你定义字符数组长度为5,同时初始化时。
4:第一种,如果你选择第一种方法输出,就不会出现该错误,但是这是输出的是逐个字符,当然也就不是字符串了,char ch[5]={'*','*';,',用了5个字符赋值,这样对于真正意义上的字符串少了结束标志,即‘\*',及gets(“字符数组名”)和puts(“字符数组名和字符串”);
3、通过以上总结可以发现;*','*';},'*'}; 用字符型数据对字符数组初始化;第二种,char ch[5]={"****"};用字符串常量直接对字符数组初始化;*'*';
2、字符数组初始化后,对字符数组的输入输出一般有三种方法:第一种,用格式字符%c逐个输入输出;第二种,用格式符s整体输入输出;第三种,用字符串输入输出函数;,':第一,你的char ch[5]={Ƈ、C语言中
4:第一种,如果你选择第一种方法输出,就不会出现该错误,但是这是输出的是逐个字符,当然也就不是字符串了,char ch[5]={'*','*';,',用了5个字符赋值,这样对于真正意义上的字符串少了结束标志,即‘\*',及gets(“字符数组名”)和puts(“字符数组名和字符串”);
3、通过以上总结可以发现;*','*';},'*'}; 用字符型数据对字符数组初始化;第二种,char ch[5]={"****"};用字符串常量直接对字符数组初始化;*'*';
2、字符数组初始化后,对字符数组的输入输出一般有三种方法:第一种,用格式字符%c逐个输入输出;第二种,用格式符s整体输入输出;第三种,用字符串输入输出函数;,':第一,你的char ch[5]={Ƈ、C语言中
全部回答
- 1楼网友:单身小柠`猫♡
- 2021-02-20 14:43
字符串最后要一个结束标志'\0',占一个char,
所以你定义的长度为5的字符串,却赋值了长度为6的字符串,即"*****\0"
所以会溢出报错。
这句char ch[5]="*****";与char ch[5]={'*','*','*','*','*'};的效果是一样的
这前者就会编译不过。会报字符串长度大长。
char ch[6]={'*','*','*','*','*'}; 这样就不会错了。
你可以查阅字符串相关知识,也可以HI我。
- 2楼网友:桑稚给你看
- 2021-02-20 13:22
#和include之间的空格去掉
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯