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

有关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日