c++ - 指向 char 的指针中的垃圾值

标签 c++ pointers char

在代码中:

int main(){
int a = 10;
int * s =  &a;
cout << s;
}

“a”的内存地址按预期打印。但是,当我尝试时:

int main(){
char a = 10;
char * s =  &a;
cout << s;
}

输出是一个垃圾值。这可能是什么原因?

最佳答案

是因为operator<<具有处理字符指针的特殊功能,因为它们是遗留 C 中的字符串。因此它将假定任何 char *你给它一个指向遗留 C 字符串中第一个字符的指针,然后这样打印它。

如果你想专门将它当作一个指针,将它转换为一个指针类型而不特殊处理,比如:

cout << static_cast<void *>(s);

关于c++ - 指向 char 的指针中的垃圾值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54500106/

相关文章:

javascript - 使用 qml 添加一个有条件的类

C#/C++ pInvoke 技巧

Java:添加两个数字字符数组

string - String 字符的 Scala int 值

c++ - 使用 MinGW 编译时链接 GLEW 库

c++ - C++中头文件的 namespace

c++ - 指针正在以某种方式失效,这会导致访问冲突

c++ - 为什么我不能转发声明指针结构?

c++ - 从函数 C++ 中删除内存

java - 如何反转逗号后的字符串,然后打印字符串的前半部分Java