c++ - 带有 c 样式字符串的 C++ 指针
问题描述
为什么当 cout 指针时我没有得到地址?请参阅下面的代码:code1:
string s1 {"NAME"};
string *p1 {&s1};
cout<<p1;
给出 0x71fcc0 这是有道理的。但是看看当我使用 cstyle 字符串时会发生什么:
char cstring1 [] {"NAME"};
char *cp2 = &cstring1[0];
cout<<cp2<<endl;
在屏幕上打印 NAME 那么为什么它不打印地址呢?
解决方案
那么为什么它不打印地址呢?
因为它是一个指向char
. 当插入字符流时,指向字符的指针与其他指针的处理方式不同。
当指向 char 的指针插入到字符流中时,将生成指向的字符串,而不是地址。如果指向的字符串不是以空值结尾的,则程序的行为是未定义的。
推荐阅读
- r - file.path 函数中的空值 (NA) 显示额外的斜杠字符
- python - 从 html5 图形或网站中抓取证券交易所数据
- sql - 在 SQLite 中将查询分组到尽可能少的查询中?
- python - 如何在python中将xml文件转换为csv
- c# - 通过 VS 发布 vs dotnet.exe 发布为什么第二个更快
- android - Gradle 位置不正确如何解决 android gradle rrror
- r - glmnet多项逻辑回归预测结果
- visual-studio - 对 SSRS 中的参数使用 DateAdd 时出错
- node.js - 如何修复此错误 -npm
- php - 在 Node.js 中解码用 PHP 编码的 base64 编码密码