为什么第二行输出的是指针p1的值,第四行输出的是指针p的值,两个要输出值不应该是写*p1和**p吗,
![](https://profile-avatar.csdnimg.cn/dd5770d1aab54dcf827b5bde9bde1b90_m0_72439877.jpg!4)
为什么第二行输出的是指针p1的值,第四行输出的是指针p的值,两个要输出值不应该是写*p1和**p吗,
为什么第二行输出的是指针p1的值,第四行输出的是指针p的值,两个要输出值不应该是写*p1和**p吗,
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- 语言-逆行者 2023-05-09 11:31关注
- 在本题中,定义了字符变量 c 并赋值为 'a',然后定义了一个 char* 类型的指针变量 p1,并将 c 的地址赋值给了它,即 p1 = &c。这样,p1 就指向了变量 c 所在的内存地址。接着,又定义了一个 char** 类型的指针变量 p,并将 p1 的地址赋值给了它,即 p = &p1。这样,p 就指向了指针变量 p1 的内存地址。可能你理解错了,认为是输出c字符。
- 如果将 printf 语句改为 printf("%x\n",*p1),输出的是指针 p1 所指向的内存单元存储的值,即输出变量 c 的值。
由于 c 为一个字符类型的变量,其地址被赋给了 p1,所以 *p1 表示指向 c 的地址,即输出变量 c 中存储的字符 'a' 的 ASCII 码值(十六进制格式)。
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 关于#python#的问题:使用ATL02数据解算光子脚点的坐标(操作系统-windows)
- ¥115 关于#python#的问题:未加密前两个软件都可以打开,加密后只有A软件可打开,B软件可以打开但读取不了数据
- ¥15 在matlab中Application Compiler后的软件无法打开
- ¥15 想问一下STM32创建工程模板时遇到得问题
- ¥15 Fiddler抓包443
- ¥20 Qt Quick Android 项目报错及显示问题
- ¥15 而且都没有 OpenCVConfig.cmake文件我是不是需要安装opencv,如何解决?
- ¥15 oracleBIEE analytics
- ¥15 H.264选择性加密例程
- ¥50 windows的SFTP服务器如何能批量同步用户信息?