CFXLWT 2022-02-05 11:31 采纳率: 81.5%
浏览 72
已结题

字符串输入输出格式的问题

char sp="pointer"; //字符指针
printf("%s,%c,%c\n",sp,sp,(sp+2)); //pointer,p,i
明明是同一个指针,为什么去掉
之后就可以用%s输出全部,而加上*只能输出一个字符而且只能用%c

  • 写回答

3条回答 默认 最新

  • 慕雪华年 新星创作者: C/C++技术领域 2022-02-05 11:45
    关注
    • 首先,字符指针是char*而不是char
    • 当你char* sp="pointer"用这种方式定义字符串的时候,这是一个常量字符串,字符串的末尾会有一个隐藏的\0
    • %s的作用就是从指针所指向的位置开始一直打印,直到遇到\0停止
    • %c的作用是打印一个字符, 打印目前指针指向的字符,必须要解引用指针才能进行访问
      因为不解引用,你的指针就是一个地址,%c不能打印地址
      这就和%d不能用来打印一个int类型变量的地址一样

    img

    如果对你有帮助,还请点个采纳,万分感谢!

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

报告相同问题?

问题事件

  • 系统已结题 2月13日
  • 已采纳回答 2月5日
  • 创建了问题 2月5日