但是这样做有限制:
char
str[255]
用scanf("%s",str)获得输入时,最多容纳254个字符,因为读入操作会在后面加个"\0"
用printf("%s",str)
输出时,数组一定要是用"\0"结束的。
不遵守以上规则会产生数组越界,导致不可知的错误。
字符串输出在遇到'\0'字符前不会停char*
p
=
"123\0456"
printf(p)
//
输出123
p[3]
=
'&'
printf(p)
//
输出123&456
你代码里为什么那样是因为多位数组的存储空间是连续的
两句strcpy后arr数组是变这样
you.me.?
其中.代表空字符,?是未使用的空间