c语言char可以存多少个字符

charst[5];printf("inputstring:\n");scanf("%s",st);printf("%s\n",st);st为15的时候可以输入14个字母... char st[5];

printf("input string:\n");
scanf("%s",st);
printf("%s\n",st);
st为15的时候可以输入14个字母因为左后有个\0
可是当把st[15]改为st[5]的时候输入13个字母才报错这是为什么啊?
高手帮帮忙 谢谢啦
展开
 我来答
四舍五不入6
高粉答主

2020-03-18 · 醉心答题,欢迎关注
知道答主
回答量:147
采纳率:100%
帮助的人:2万
展开全部

C语言中,char是一个字符类型的关键字。

如果利用char定义一个变量,那么只能存放一个字符;

如果利用char定义一个数组或字符指针,那么存放的字符个数根据用户分配的内存空间来定。

扩展资料:

char用法实例:

用 char 类型来专门表示一个字符,例如:

char a='1';

char b='$';

char c='X';

char d=' '; // 空格也是一个字符

char e='\63'; //也可以使用转义字符的形式

char 称为字符类型,只能用单引号' '来包围,不能用双引号" "包围。而字符串只能用双引号" "包围,不能用单引号' '包围。

输出字符使用 %c,输出字符串使用 %s。

参考资料来源:百度百科-char (计算机语言关键字)

天云小店
2015-06-06 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:756万
展开全部

C语言中,char是一个字符类型的关键字。

如果利用char定义一个变量,那么只能存放一个字符;

如果利用char定义一个数组或字符指针,那么存放的字符个数根据用户分配的内存空间来定。


举例说明如下:

char ch='a';   // 存放一个字符
char ch="ab";  // 只接收第一个字符,字符'b'被舍去
char a[] = "adfsdf";  // 存放7个字符(包含一个结束字符'\0')
char *p = "adfsdf";   // 存放7个字符(包含一个结束字符'\0')
char b[20];  // 最多可以存放20个字符
char *p = (char *)malloc(20); // 最多可以存放20个字符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nusicvvv
2012-08-24 · TA获得超过2574个赞
知道大有可为答主
回答量:3576
采纳率:33%
帮助的人:1961万
展开全部
内存溢出了。 容纳不了那么多,
char st[5];

说明st-》5个字节的空间合法。 之后的空间是不合法的。往里面强行写 那就出问题了。
更多追问追答
追问
可我写小于13个字母就不报错
追答
不报错 也不说明 无问题。 注意思维方式。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小混混Uz锅
2012-08-24 · 超过19用户采纳过TA的回答
知道答主
回答量:134
采纳率:0%
帮助的人:66.7万
展开全部
访问了 禁止访问的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小鸣5566
2012-08-24 · TA获得超过540个赞
知道小有建树答主
回答量:1061
采纳率:0%
帮助的人:891万
展开全部
超出数组范围即越界了,结果是无法预料的。就好像放任一辆汽车开,他会开出马路,但结果是立马翻车还是撞死人还是撞树上或者开河里,就不知道了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式