为什么我们需要使用 strcpy()
将字符串复制到 char 数组中?
我在这上面浪费了 2 个小时。它没有向我显示任何错误,但输出并不像我预期的那样,我花了 2 个小时才找出错误。
它只是显示一个垃圾字符。
当我使用 strcpy()
时,它工作正常。
最佳答案
答案的另一种解释是,char数组是一种基本类型,而不是覆盖operator =
的类。
如@StianV.Svendenborg 所述,将一个 char 数组分配给另一个意味着将其地址分配给另一个 char 指针变量。
char数组分配如;
char test[4]={1,2,3,4};
将分配 4 个字节(每个用于一个 char 值)。
在算术等表达式中,test
的结果将表现得像指针。例如,test+1
将指向第二个元素的地址,而 *(test +1) == 2
将为真并且
print("%p",test)
将打印数组中第一个元素的地址。
如果您使用类 std::string
和 operator=
,函数将遍历所有这些分配的字段并在您不考虑的情况下复制它们。
关于c++ - 为什么不能像这样复制 char 数组 charArray ="some string";,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24712154/