这是什么情况两个都对不上啊,a和p怎么都乱码,地址和值都没有打印出来
1条回答 默认 最新
- 不停感叹的老林_<C 语言编程核心突破> 2022-03-20 16:29关注
#include <iostream> int main() { char a = 0x66; char *p = &a; std::cout << a << "\n" << (const void *)p << std::endl; return 0; }
在C++直接打印char*这种指针,默认匹配的操作符是打印char序列,或者可以认为是char数组,但要求结尾是/000,但p本身就是纯指针而非char序列,没有结束符,所以就是一种未定义的行为。
想打印指针地址,需要强制转换为void指针形式。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 TLS1.2协议通信解密
- ¥40 图书信息管理系统程序编写
- ¥20 Qcustomplot缩小曲线形状问题
- ¥15 企业资源规划ERP沙盘模拟
- ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
- ¥15 前端echarts坐标轴问题
- ¥15 ad5933的I2C
- ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
- ¥15 数学建模求思路及代码
- ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题