为什么此代码打印字符串而不是打印地址
Why this code is printing string rather than printing address?
在此代码中,cout<<q<<endl;
返回字符串"mani"?。 q 包含第一个字符"m"的地址,因此它应该打印地址而不是字符串。请解释一下。
int main(){
char *q;
char b[5]={'m','a','n','i'};
q=&b[0];
cout<<b<<endl;
cout<<q<<endl;
std::cout
有一个特殊的const char*
重载,它将内存输出为一个char
数组,从传递到下一个NUL终结器的指针开始(你的工作是确保适当的内存可用(。
如果要关闭此行为并输出指针地址,请使用强制转换:
std::cout << (const void*)b << endl;
相关文章:
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 打印字符数组地址的正确方法
- cout 打印内存地址而不是值
- 如何访问头文件中类的组件并打印它们的地址?
- 为什么当我尝试打印地图内容时,我得到的是地址而不是 C++ 中的值?
- 为什么变量的打印地址在每次执行时都会打印随机值,即使它是 C 中的逻辑地址?
- 为什么这是打印内存地址而不是值
- 将指针传递给函数 - 为什么我无法打印地址?
- 如何使用Qt为每个地址打印二进制文件
- 为什么调用 cout.operator<<(const char*) 打印地址而不是字符串? 如何创建一个函数本地静态"HashSet<char>"并初始化它一次?
- 使用指针,打印地址而不是值,为什么?(使用运算符)
- 为什么此代码打印字符串而不是打印地址
- 如何阻止我的数组打印地址
- 为什么我的函数打印地址而不是数组的内容
- 如何在c++中用大写字母打印地址(十六进制值)
- 为什么将字符指针流式传输到 cout 不打印地址
- 为什么插入运算符打印地址而不是字符串
- 临时打印地址
- 运算符打印地址<<重载
- 输出打印地址而不是3D数组指针中的值