作者ccpz (OoOoOo)
看板TransCSI
标题Re: [问题] 补南部补习班二技模拟考..问题
时间Thu Apr 13 12:11:43 2006
※ 引述《j121780im (Wen)》之铭言:
: ※ 引述《ccpz (OoOoOo)》之铭言:
: : 这题觉得和 cmopiler 有关
: : 因为参数传递是先 push 进 stack,函数中再一个个取出
: : 而 stack 最後进的最先出
: : 所以在函数中,要和你打的顺序一样的取出顺序
: : 就要从最後一个开始 push
: : 这样第一次 pop 时才是第一个
: : 所以 b++ 先算,再来 --a ...
: : 而最後结果是 4 没错
: : (这是我用 gcc 跑的结果)
: --a 跟 b++ 会cover掉 a++ 跟 --b 吗?
: 所以真正执行到是 --a 跟 b++ ???
: 是这样吗..谢谢!
会 cover 没错
但是问题是在传给函数的值(也就是放到 stack 的值)
a++ 是把值先放进 stack再加
++a 就是先加再放进 stack
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.92.3
※ 编辑: ccpz 来自: 140.113.92.3 (04/13 12:12)