C语言: 当n=1时, n+++n---n的结果是? 这道题应该怎么做?
展开全部
你好,这种题目没有任何意义.C++/C严禁使用多项一条复合表达式.
一个精典的例子 int i=1,j=(i++)+(i++)+(i++);
像这样的情况下j的值是会根据不同的编译器有不同的改变.所以这种多项复合表达式是C或C++中严禁使用的,如果你面试写一句这东西.立马完蛋.
不过既然你问了,我还是给你解出来.我以VC2010为IDE环境
n+++n---n;
(n++)+(n--)-n;这样看你应该清楚多了吧,
接下来 VC2010对于这种表达式是先算出每个变量的值,最后再拿出结果.
所以(n++)+(n--)-n; =2+0-1=1
一个精典的例子 int i=1,j=(i++)+(i++)+(i++);
像这样的情况下j的值是会根据不同的编译器有不同的改变.所以这种多项复合表达式是C或C++中严禁使用的,如果你面试写一句这东西.立马完蛋.
不过既然你问了,我还是给你解出来.我以VC2010为IDE环境
n+++n---n;
(n++)+(n--)-n;这样看你应该清楚多了吧,
接下来 VC2010对于这种表达式是先算出每个变量的值,最后再拿出结果.
所以(n++)+(n--)-n; =2+0-1=1
追问
谢谢,书里出的题,为了应试,我也没有办法,呵呵....
展开全部
原式可以看成(n++)+(n--)-n=1,++和--都在+和-运行后运行且影响n的值,不影响表达式值,所以表达式值为1+1-1=1。。。
你可以编译n=1,n+++n试试,它等于2,(n++)+n=1+1=2,就能说明,++和--都在+和-运行完后再执行的,此时的n=2。。。
你可以编译n=1,n+++n试试,它等于2,(n++)+n=1+1=2,就能说明,++和--都在+和-运行完后再执行的,此时的n=2。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编程给你算过了,等于1;从左到右计算,n++自加得2,此时n=2;再加n得4,4自减得3,再减n(2)得1。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询