GRIT️‍ 2023-06-24 20:55 采纳率: 80.6%
浏览 19
已结题

问题:C语言中的指针输出问题

img


除了第二行i =7前面的PROGRAM 为啥输出不懂外其他的都能懂,第一行的首字母P 应该是*a输出的,后面的是b+1输出的,然后换行就应该输出i =7的啊?为啥还是输出PROGROAM?求解答

  • 写回答

3条回答 默认 最新

  • threenewbee 2023-06-24 21:14
    关注
    printf("%c%s\n",*a, b+1); 这个输出 a的第一个字符和b的第二个开始到结尾再换行,所以是 Program
    while (putchar(*(a + i))) i++; 这个会输出 PROGRAM(每次循环输出一个字母)然后 printf("i = %d\n", i);输出此时i的变量,也就是当*(a+i)为\0的时候的i,所以是字符串长度7,再换行
    while (--i) putchar(*(b+i)); 这个从后到前输出b,当i=1的时候,--i为0,不循环,所以这个不输出第一个字母p,是margor
    然后输出了换行,再从b[3]也就是第四个字符开始输出b,所以是 gram
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月3日
  • 已采纳回答 6月25日
  • 创建了问题 6月24日

悬赏问题

  • ¥15 如何让子窗口鼠标滚动独立,不要传递消息给主窗口
  • ¥15 如何能达到用ping0.cc检测成这样?如图
  • ¥15 关于#DMA固件#的问题,请各位专家解答!
  • ¥15 matlab生成的x1图不趋于稳定,之后的图像是稳定的水平线
  • ¥15 请问华为OD岗位的内部职业发展通道都有哪些,以及各个级别晋升的要求
  • ¥20 微信小程序 canvas 问题
  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验