gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:03:48 25 4
gpt4 key购买 nike

在代码中:

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/

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