c++ - 带指针的整数数组和字符数组
问题描述
我真的很想得到一些关于 c++ 中指针的帮助。看看下面的代码:
int array[3]={4,7,2};
int * a;
a = array;
char Carray[3]={'p','k','\0'};
char * c;
c = Carray;
cout << a << "\n";
cout << c << "\n";
打印 a 按预期返回数组第一个元素的地址,即 4。
但是打印 c 应该给出 Carray 的第一个元素的地址,即 p,但在这种情况下它给出了整个字符串,即 'pk'。我们还没有在这里使用值运算符 *。
如果有人可以向我解释这一点,那就太好了
解决方案
这是因为std::cout
视为char*
C 风格的字符串。如果您需要地址,您可以尝试:
std::cout << (void *) c;
推荐阅读
- xcode - Xcode RealityKit / 无法为表达式生成诊断
- python - 如何使用 Tensorflow 对象检测 API 和 tf.estimator 执行自定义数据增强?
- elasticsearch - 如何从logstash中的一个索引中过滤出基于一个参数的记录
- sql - 重复广告商的 SQL 查询
- ios - 无法在 Firebase 存储上获取上传图片的网址
- javascript - 如何在 node.js 中创建会话变量并将其从路由传递到路由?
- c# - 将后端拆分为 2 个项目后的前端需求惊喜
- r - 在 valueBox 中添加 rho 作为图标
- php - 提取月份功能在postgres中不起作用
- soapui - 如何解决“响应 SWE 请求而缺少正文长度”