m0_62667564 2022-04-14 17:08 采纳率: 84.8%
浏览 35
已结题

有关C语言的指针与地址问题

请问c语言中 char *s=“abcde”; s+=2;
printf(“%d”,s); 的运行结果是什么?
答案是字符c的地址,但是%d为什么会是地址呢?

  • 写回答

7条回答 默认 最新

  • yun6853992 2022-04-14 17:54
    关注

    这里你要了解几个知识点
    1:c语言字符串的概念,实际上就是字符串的首地址,然后一直存数据,直到遇到终结符\0。
    2:存储字符串的方式,char *的方式和char数组的方式。
    然后你理解这个问题。
    这里的s实际上就是一个指针,指向的是字符串的首地址。 你如果按字符串处理,就是从这个地址开始输出字符串(%s),而你把他当数值处理,当然就直接输出的是一个值了,地址的输出其实用%p更好。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 4月23日
  • 已采纳回答 4月15日
  • 创建了问题 4月14日

悬赏问题

  • ¥40 图书信息管理系统程序编写
  • ¥15 7-1 jmu-java-m02-使用二维数组存储多元线性方程组
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题