@忍蛙 2023-05-09 11:14 采纳率: 0%
浏览 25

为什么第二行输出的是指针p1的值,第四行输出的是指针p的值,两个要输出值不应该是写*p1和**p吗,

img


为什么第二行输出的是指针p1的值,第四行输出的是指针p的值,两个要输出值不应该是写*p1和**p吗,

  • 写回答

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 码值(十六进制格式)。
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月9日

悬赏问题

  • ¥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服务器如何能批量同步用户信息?