C++ char*-为什么指针中没有地址?
我有一个关于C++ char*-为什么指针中没有地址?,c++,C++,我有一个关于char*的基本问题,我不明白 char* aString = "Hello Stackoverflow"; 指针指向字符链的第一个字符 cout << *aString; // H cout从该位置开始按顺序保存字符串。C++继承的C规则简单地说明,当你尝试使用 char */COD>作为字符串时,它将继续读取字符直到遇到0 字节 如果您想获取地址,请告诉cout不要将其解释为“字符串”: std::cout运算符的重载aString确实包含地址,但是operat
char*
的基本问题,我不明白
char* aString = "Hello Stackoverflow";
指针指向字符链的第一个字符
cout << *aString; // H
cout从该位置开始按顺序保存字符串。C++继承的C规则简单地说明,当你尝试使用<代码> char */COD>作为字符串时,它将继续读取字符直到遇到0 <强>字节
如果您想获取地址,请告诉cout
不要将其解释为“字符串”:
std::cout运算符的重载aString
确实包含地址,但是operator@David这是同样的事情:- <代码> 0==0 \ < /代码> 0与‘0’的值相同。哦,我想如果我把一个0放在字符串的中间,它会在那一点上停止…对我来说是一个简单的误解。@David这就是我要说的,它会在任何0字节处停止。@cnicutar这就是我要说的。如果我是阅读你文章的初学者,我会认为字符串在看到数字0而不是0字节时会停止。我知道这只是一个示例,但无论如何,将字符串文本分配给非常量指针是一个糟糕的做法。
cout << aString //Hello Stackoverflow
std::cout << (void *)aString << std::endl;