一个关于c语言的疑问

来源:百度知道 编辑:UC知道 时间:2024/05/26 23:10:30
想往字符数组里输入字母,但是用下面的程序只能输入3个,这是为什么啊
# include <stdio.h>
main()
{
int i;
char b[5];
for(i=0;i<=4;i++)
{
scanf("%c",&b[i]);
}
for(i=0;i<=4;i++)
printf("%c",b[i]);
}

还有,字符数组与整型数组每个单元占多少内存

回车会也当成字符的,如果你一次输入5个字母,然后回车,那就OK了。
字符数组的每个元素是char类型,1字节
整型数组的每个元素是int类型的话,在VC++下是4字节,TC下是2字节

是五个,可能你输入2个空格或者换行符的原因。你连续起来输入就没问题(注意,你输入的最后一个换行也会就算在这里)

字符数组每个单元占1个字节,
整形一般不小于4个(我说的是32位系统)

你是怎么输入的?是一个字符一次回车?还是四个字符后再按回车?

按你的程序,应该采用第二种方法,即四个字符后再按回车,除非你想将回车符也作为字符保存到数组中。

每个字符占用1字节,int变量占用2或者4字节。