gpt4 book ai didi

c++ - 将 char 数组分配给单个 char 的奇怪行为

转载 作者:行者123 更新时间:2023-11-28 02:38:43 25 4
gpt4 key购买 nike

// example: class constructor
#include <iostream>
#include <string>

class Test{
public:
char* getColor(){
return color;
}
private:
char color[5] = "Blau";
};

int main () {
Test s;
char *myChar = s.getColor();
std::cout << myChar;
return 0;
};

我真的不明白这实际上是如何返回“Blau”而不是 B 或其他东西的。

我所做的是将 char 数组的起始指针分配给单个 char 指针。

我真的很想明白为什么会这样。也许是因为 std::cout 获取了该类型的所有值?所以不是“B”而是“Blau”

最佳答案

指向单个对象的指针和指向数组第一个元素的指针之间没有区别。程序员应该知道应该如何解释它;或使用更友好的类型,如 std::string .

当您流式传输 char* 时与 << ,它假定它是指向以零结尾的 C 风格字符串的第一个元素的指针,并打印它找到的所有字符,从该字符开始,直到找到一个值为零的字符。

关于c++ - 将 char 数组分配给单个 char 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26678742/

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