C语言关于指针的问题,指针的地址

char*p="abcdefg";printf("%s\n",p);printf("%d\n",*(p+1));//p不是一个地址吗?为什么printf("%s\n",p... char * p="abcdefg";

printf("%s\n",p);
printf("%d\n",*(p+1));
//p不是一个地址吗?为什么printf("%s\n",p);会打印出abcdefg?如何打印存放指针常量p的物理地址?
展开
 我来答
童之新
2019-08-09 · TA获得超过228个赞
知道小有建树答主
回答量:289
采纳率:60%
帮助的人:82.8万
展开全部
printf("%s\n",p);为打印字符串,传的是字符串的地址,p就是一个指向这个字符串地址,所以没什么问题。
若你要打印这个物理地址,直接printf("%d\n",p);就可以拉,你加个*,就是取这个地址的值了,所以printf("%d\n",*p); 等于97(即ASCII码的 a 的值),printf("%d\n",*(p+1)); 等于98(即ASCII码的 b 的值)
最大的宝宝
2019-08-09 · TA获得超过828个赞
知道小有建树答主
回答量:1569
采纳率:67%
帮助的人:411万
展开全部
试一下%p格式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式