c*********t 发帖数: 2921 | 1 【 以下文字转载自 Programming 讨论区 】
发信人: cookiesweet (apple), 信区: Programming
标 题: 大家看看这道C语言题是怎么回事?
发信站: BBS 未名空间站 (Mon Apr 10 23:13:16 2017, 美东)
http://www.includehelp.com/c/operators-aptitude-questions-and-answers.aspx
3) What will be the output of following program ?
#include
void main()
{
int x=10;
x+=(x++)+(++x)+x;
printf("%d",x);
}
1. 44
2. 45
3. 46
4. 47
Correct Answer - 2
45
1) expand the expression : x=x+(x++)+(++x)+x;
2) due to pre increment ++x , x will be 11 for this expression.
3) after executing expression x will be 44.
4) finally x will be 45 due to post increment (x++).
弄不懂呀,到底这里 ++x, x++哪个先算?觉得x++应该先算,因为它先出现。可是解
释的正好相反。
我在电脑上编译run了一下这个代码,输出的就是45. 可是解释不通呀,
谁给看看。多谢
过去一直觉得对+这样的运算符都是从左到右。这题彻底颠覆了俺学了/用了几十年的
C语言的基本常识。很悲催呀。 | c*********t 发帖数: 2921 | 2 原帖在这里
http://www.mitbbs.com/article_t/Programming/31499703.html
【在 c*********t 的大作中提到】 : 【 以下文字转载自 Programming 讨论区 】 : 发信人: cookiesweet (apple), 信区: Programming : 标 题: 大家看看这道C语言题是怎么回事? : 发信站: BBS 未名空间站 (Mon Apr 10 23:13:16 2017, 美东) : http://www.includehelp.com/c/operators-aptitude-questions-and-answers.aspx : 3) What will be the output of following program ? : #include : void main() : { : int x=10;
| k***e 发帖数: 1931 | 3 面试出这种题目的面试官直接让他滚蛋。但是我敢保证正规一点的公司不会考这种题。 | s****z 发帖数: 11 | | t**8 发帖数: 4527 | 5 正确的答案是 46 or 结果不确定
扯鸡巴蛋的题
【在 c*********t 的大作中提到】 : 原帖在这里 : http://www.mitbbs.com/article_t/Programming/31499703.html
| A***g 发帖数: 1816 | |
|