请问c语言中 char *s=“abcde”; s+=2;
printf(“%d”,s); 的运行结果是什么?
答案是字符c的地址,但是%d为什么会是地址呢?
有关C语言的指针与地址问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
7条回答 默认 最新
- yun6853992 2022-04-14 17:54关注
这里你要了解几个知识点
1:c语言字符串的概念,实际上就是字符串的首地址,然后一直存数据,直到遇到终结符\0。
2:存储字符串的方式,char *的方式和char数组的方式。
然后你理解这个问题。
这里的s实际上就是一个指针,指向的是字符串的首地址。 你如果按字符串处理,就是从这个地址开始输出字符串(%s),而你把他当数值处理,当然就直接输出的是一个值了,地址的输出其实用%p更好。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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有栅极场板的击穿电压仿真问题