Redian新闻
>
大家看看这道C语言题是怎么回事? (转载)
avatar
大家看看这道C语言题是怎么回事? (转载)# JobHunting - 待字闺中
c*t
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语言的基本常识。很悲催呀。
avatar
c*t
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;

avatar
k*e
3
面试出这种题目的面试官直接让他滚蛋。但是我敢保证正规一点的公司不会考这种题。
avatar
A*g
6
46,而且在cgiwin/gcc跑了,46
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。