在C语言中,i=3,k=++i+(++i),m=(++i)+(++i),n=i+++(++i)的结果分别是多少,能否给出每步的答案?
来源:百度知道 编辑:UC知道 时间:2024/06/04 07:34:29
急求答案!!!
用电脑算出来的结果分别是k=10,m=10,n=12.
用电脑算出来的结果分别是k=10,m=10,n=12.
最佳答案:
k=10;
m=10;
n=8;
(1)k=++i+(++i);
先算(++i), 此时i=4,接着算++i=5,此时i=5.i+i=10;
(2)m=(++i)+(++i);
先算(++i), 此时i=4,接着算(++i)5)=5,此时i=5.i+i=10;
(3)n=i+++(++i);
先算(++i), 此时i=4.i+i=8;
结果经vc++6.0验证
应该是:k=m=10,n=8
第一个两个++i后,i=5,相加后5+5=10,是执行完2次++i后才进行"+"运算的
第二个同上
第三个一个++i后,i=4,相加后为4+4=8
8
8
7
先计算所有的++i,执行完后直接加起来就可以拉,而且i的取值是计算所有的i++和++i的值!所以计算结果是k=m=10,而i的值是5,n=8,i=5;
m=14
k=10
n=16
不知道楼主在哪看到的这样的题。多半是中国人编写的教材或者资料上。研究这样的题是没有意义的。因为不同的编译器会有不同的结果。我没有去分析,但我觉得楼上几位的都有可能是对的。因为ANSI C(标准C)里对这样的表达式未定义。不信请看:
http://c-faq-chn.sourceforge.net/ccfaq/node39.html
http://cpp.ga-la.com/html/12/12/0604/139.htm
c语言的问题:int i=3; k=(i++)+(++i)+(i++);
在C语言中,i=3,k=++i+(++i),m=(++i)+(++i),n=i+++(++i)的结果分别是多少,能否给出每步的答案?
在C语言中j=-i++
k=(++i)+(++i)+(++i)
在C语言中(i++)+(i++)+(i++)和(++i)+(++i)+(++i) 有什么区别啊?急救
在C语言中(int i=3);和(int i;i=3;)一样吗?
c语言中一条语句 if (i!=k&&i!=j&&j!=k),其中的&什么意思
C语言:j=i+(++i)
C语言中SUM+=i++
C语言中 rtn*=i; 是什么意思?