野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6895|回复: 4

关于之前每日一题++的用法及入栈顺序的疑惑

[复制链接]
发表于 2014-10-16 17:07:30 | 显示全部楼层 |阅读模式
  • int a=0,b=0;
  • printf("%d,%d,%d",a++,++b,a+b);
  • 因为可变参数的函数入栈是自右向左 所以输出结果是  0 1 0
  • 我调了下顺序
  • volatile int a=0,b=0;
  • printf("%d,%d,%d",a+b,++b,a++);
  • 输出结果是 1 1 0 请问 为什么不是2 1 0





}


回复

使用道具 举报

发表于 2014-10-16 17:14:29 | 显示全部楼层
a++ 是运行后加,所以a+b =b =1
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-16 17:16:21 | 显示全部楼层
南门静美 发表于 2014-10-16 17:14
a++ 是运行后加,所以a+b =b =1

就是说是先运行完函数在自加对吧  为什么不是传递值给函数后自加呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-16 17:21:38 | 显示全部楼层
我不是二货 发表于 2014-10-16 17:16
就是说是先运行完函数在自加对吧  为什么不是传递值给函数后自加呢

我明白了 是a把值传递给函数的形参后 在自加1  也就是说 形参的a就是0  然后 a+b也就是1了 3Q
回复 支持 反对

使用道具 举报

发表于 2016-11-25 14:28:53 | 显示全部楼层
不懂,想学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-18 11:49 , Processed in 0.052329 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表