C++ 指针和字符串寻址

标签 c++

如果我们声明:

int i; 
int *ptr1 = &i;
*ptr1=10;
cout << ptr1;

这里 ptr1 会给出地址。 但是:

char *ptr2;
ptr2="Priyesh";
cout << ptr2;

这里会给出字符指针的内容。 为什么会有这样的差异?

最佳答案

operator <<专为char重载指针 - 假设如果您尝试打印 char指针,您实际上想要打印它指向的字符串。

如果您想以与任何其他指针相同的方式打印它,请将其转换为 void*第一:

char *ptr2;
ptr2="Priyesh";
cout << static_cast<void*>(ptr2);

(或 cout << (void*)ptr2;)

关于C++ 指针和字符串寻址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34523926/

相关文章:

c++ - SDL OpenGL 纹理丢失

c++ - 由于编译器优化,应用程序 (mfc) 在发布版本中失败,但在调试版本中工作正常

C++11 - 检测运算符 new[] 的方法

c++ - 用 C++ 绘制图形(这是如何工作的?)(以及更快编译器的技巧?)

c++ - 将结构传递给线程

c++链接列表不起作用

c# - 从 C++ 到 C# 的反向调用

c++ - 将属性表升级到 Visual Studio 2010

2组静态常量的c++运行时分派(dispatch)

c++ - 如何查明是否未设置环境变量?