作者j121780im (Wen)
看板TransCSI
标题Re: [问题] 补南部补习班二技模拟考..问题
时间Wed Apr 12 16:40:08 2006
※ 引述《ccpz (OoOoOo)》之铭言:
: ※ 引述《j121780im (Wen)》之铭言:
: : 我算出来答案是3 .
: : 3.若int a=2,b=3 ; 则printf("%d%d%d%d",a++ , --b ; --a ; b++);的输出结果为?
: : 1.2332
: : 2.2323
: : 3.3333
: : 4.1313
: : 5.以上皆非
: : 我算出来是4.
: 这题觉得和 cmopiler 有关
: 因为参数传递是先 push 进 stack,函数中再一个个取出
: 而 stack 最後进的最先出
: 所以在函数中,要和你打的顺序一样的取出顺序
: 就要从最後一个开始 push
: 这样第一次 pop 时才是第一个
: 所以 b++ 先算,再来 --a ...
: 而最後结果是 4 没错
: (这是我用 gcc 跑的结果)
--a 跟 b++ 会cover掉 a++ 跟 --b 吗?
所以真正执行到是 --a 跟 b++ ???
是这样吗..谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.134.148.239