鱼C论坛

 找回密码
 立即注册
查看: 1877|回复: 17

[已解决]问题

[复制链接]
发表于 2022-6-5 21:18:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>

int main()
{
        char *s="abcdef";
        s=s+2; 
        printf("%d\n",s);
        printf("%p",s);
}

想问第一个printf()里面这个%d输出的是什么?
遇到的题目,题目答案给的是字符c的地址。

最佳答案
2022-6-5 21:50:15
本帖最后由 临时号 于 2022-6-5 21:51 编辑

1.%d是指用十进制输出内容,%p是指用十六进制输出地址
2.答案是正确的
首先,你定义了一个字符串 char *s="abcdef";
然后,你让这个指针向后移了两位(移动到了c的地址),因此,c语言会从'c'开始读取,到'\0'(c语言代表字符串结束的标志)结束,所以这句话等同于char *s="cdef";
所以,你用十进制去输出s这个指针所指向的地址时,实际上是输出c的地址,十六进制也同理
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-5 21:30:57 | 显示全部楼层
printf("%s",s);///输出cdef
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-5 21:38:38 | 显示全部楼层
答案没错,是c的地址
两个打印结果都是c的地址,%p是以十六进制打印,%d是十进制
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-5 21:41:24 | 显示全部楼层
你给出了答案,从答案看是s是字符串的首地址指向字符a,s+2是向后偏移了两个字符也就是指向c字符,%d是以十进制的方式输出,而%p应该是以地址的方式输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-5 21:50:15 | 显示全部楼层    本楼为最佳答案   
本帖最后由 临时号 于 2022-6-5 21:51 编辑

1.%d是指用十进制输出内容,%p是指用十六进制输出地址
2.答案是正确的
首先,你定义了一个字符串 char *s="abcdef";
然后,你让这个指针向后移了两位(移动到了c的地址),因此,c语言会从'c'开始读取,到'\0'(c语言代表字符串结束的标志)结束,所以这句话等同于char *s="cdef";
所以,你用十进制去输出s这个指针所指向的地址时,实际上是输出c的地址,十六进制也同理
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-6 08:11:56 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-6 08:22:26 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-6 08:48:56 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-6 10:37:47 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-6 18:41:08 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-6 18:41:21 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-6 18:46:03 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-7 08:35:09 | 显示全部楼层
能中吗??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-7 08:58:25 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-9 09:05:50 | 显示全部楼层
正在学习中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-9 09:13:49 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-10 06:26:14 | 显示全部楼层
指针s是输出地址,*s才是输出代表的内容,你s+2所以是c的地址咯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-10 11:37:02 | 显示全部楼层

回帖奖励 +20 鱼币

小问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 12:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表