char st[5];
printf("input string:\n");
scanf("%s",st);
printf("%s\n",st);
st为15的时候可以输入14个字母因为左后有个\0
可是当把st[15]改为st[5]的时候输入13个字母才报错这是为什么啊?
高手帮帮忙 谢谢啦
C语言中,char是一个字符类型的关键字。
如果利用char定义一个变量,那么只能存放一个字符;
如果利用char定义一个数组或字符指针,那么存放的字符个数根据用户分配的内存空间来定。
扩展资料:
char用法实例:
用 char 类型来专门表示一个字符,例如:
char a='1';
char b='$';
char c='X';
char d=' '; // 空格也是一个字符
char e='\63'; //也可以使用转义字符的形式
char 称为字符类型,只能用单引号' '来包围,不能用双引号" "包围。而字符串只能用双引号" "包围,不能用单引号' '包围。
输出字符使用 %c,输出字符串使用 %s。
参考资料来源:百度百科-char (计算机语言关键字)
C语言中,char是一个字符类型的关键字。
如果利用char定义一个变量,那么只能存放一个字符;
如果利用char定义一个数组或字符指针,那么存放的字符个数根据用户分配的内存空间来定。
举例说明如下:
char ch='a'; // 存放一个字符可我写小于13个字母就不报错
追答不报错 也不说明 无问题。 注意思维方式。
追问我知道这也超出写是错的。可他为什么不报错
追答这个原因很复杂。我建议你学完c语言再学汇编语言。这个问题就解决了
本回答被提问者和网友采纳