char ch[3];
strcpy(ch,"Hello");
cout<<ch<<" "<<sizeof(ch);
Q1。为什么当 ch 的大小为 3 时打印“Hello”?
Q2。如果 ch 从 ch[2] 转换为 ch[6](通过隐式类型转换),那么为什么 sizeof(ch) 仍然是 3?
最佳答案
strcpy 不做大小检查,所以它只是在 a 的内存地址写入“Hello\0”,覆盖内存中位于 a 之后的任何内容。
没有执行任何转换,ch 是 char[3],就像在 strcpy 之前一样。
关于C++ 字符串到字符串的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22387179/