gpt4 book ai didi

c++ - 为什么不能像这样复制 char 数组 charArray ="some string";

转载 作者:太空宇宙 更新时间:2023-11-04 07:15:53 26 4
gpt4 key购买 nike

为什么我们需要使用 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::stringoperator=,函数将遍历所有这些分配的字段并在您不考虑的情况下复制它们。

关于c++ - 为什么不能像这样复制 char 数组 charArray ="some string";,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24712154/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com