m0_67001341 2023-06-06 14:27 采纳率: 69.2%
浏览 53
已结题

c语言 自增自减的问题;

img

img


为什么输出的值是788

不应该是776吗?
如果最后的a++改成a--呢?

  • 写回答

4条回答 默认 最新

  • 关注

    printf函数压栈的顺序是从右往左,输出顺序是从左到右。
    图中代码的执行顺序是:
    (1)a的初始值是5,a入栈(此时a=5);
    (2)先执行最右侧的++a:a出栈,执行a++,a变成6,a入栈(此时a=6)
    (3)执行中间的++a:a出栈,执行a++,a变成7,a入栈(此时a=7)
    (4)执行左侧的a++,因为a++是后置++,先执行printf输出后再++,所以,a先出栈,执行printf,输出7 ,然后a++,a变成8,a入栈(此时a=8)。
    然后再执行printf输出后面的两个a,此时栈中a的值是8,所以后面输出的是两个8
    所以,最后的输出结果是 7 8 8

    需要注意的是a++和++a的执行顺序是不一样的!!

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 请问有没求偏多标签数据集yeast,reference,recreation,scene,health数据集。
  • ¥15 传感网应用开发单片机实训
  • ¥15 Delphi 关于sAlphaImageList使用问题
  • ¥15 寻找将CAJ格式文档转txt文本的方案
  • ¥20 数电设计提问求帮助,出租车计费器
  • ¥15 shein测试开发会问些啥我是写java的
  • ¥15 关于#单片机#的问题:我有个课程项目设计,我想在STM32F103veTX单片机,M3主控模块上设计一个程序,在Keil uVision5(C语言)上代码该怎么编译?(嫌钱少我可以加钱,急急急)
  • ¥15 opnet仿真网络协议遇到问题
  • ¥15 在安装python的机器学习程序包scikit-learn(1.1版本)时遇到如下问题
  • ¥15 要用 STM8L050J3M3TR 输出1路PWM 没有输出 不知道是不是 复用IO需要配置还是 定时器初始化的问题