void main()
{
char str1[11];
char *str2="0123456789";
strcpy(str1,str2);
cout<<str1;
}
--------------------------------------------
"0123456789" 相当于"0123456789'\0'" 长度等于11
"01234567890" 相当于"01234567890'\0'" 长度等于12
lz的程序比较危险。因为数组str1的长度为10。如果*str2="0123456789",则数组str1后面的第11个位置将会改变其值为'\0' ; 如果*str2="01234567890",则数组str1后面的第11、12两位置将会改变其值为'0'和'\0'。而这些位置不知道谁在使用。
请注意'0'不等于'\0'
'0'的ascii的值为00110000
'\0'的ascii的值为00000000
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交