C语言中的一个问题: i=3; s=(++i)+(++i)+(++i); 请问:s=?

按理说应该是15
结果为什么会是s=16呢?
求大神解答

++i 是i先加1,然后加1 后的结果进行下一步运算。
1、第一个++i 和第二个++i 同时执行得到 i = 5。
2、然后5+5 = 10。
3、再将10 与第三个++i 相加。
4、此时i = 6所以最后i = 16。
你应该会对第一步不解。做加法时要先求两边表达式,所以前两个++i 是同时运行的。因为只有一个变量i ,所以运算结果只能存一个,即最后的结果,两个++i 执行后的结果就是 i= 5,所以两个5相加就成了10了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-30
我是新手,算出来也是15,坐等高手解答。
第2个回答  2011-06-30
#include<stdio.h>

void main()
{
int n,i,sum=0;
printf("输入项数n:\n");
scanf("%d\n",n);
for(i=1;i<=n;i++)
{
if(n%2==0)
else

}
printf("%d\n",sum);
}

C语言中的一个问题: i=3; s=(++i)+(++i)+(++i); 请问:s=?
++i 是i先加1,然后加1 后的结果进行下一步运算。1、第一个++i 和第二个++i 同时执行得到 i = 5。2、然后5+5 = 10。3、再将10 与第三个++i 相加。4、此时i = 6所以最后i = 16。你应该会对第一步不解。做加法时要先求两边表达式,所以前两个++i 是同时运行的。因为只有一个变量...

C语言中,i=3,s=0,s=++i+i++ 求s和i 的详细步骤
首先赋值表达式是从左往右计算的,++i即为先将i自加一次,然后更新i的值并用这个值来参与运算,即相当于s=4+i++ 当运行i++时,由于上部是对i操作的,所以此时i的值以变为4。即s=4+4=8.i++是先运算后更新

...i=3输出y=++i值为4;而i=3,y=(++i)+(++i)值为10???帮帮忙,谢谢啦_百 ...
++i: i加1再代入运算 i++: i代入运算再加1 ++i有两次, i = 5 故y = (++i) + (++i) = 5 + 5 = 10

c++中 int i = 3;int s = (++i)+(++i)+(++i);结果为什么是16
在此式中,两个序列点之间i的值被修改了3次,所以标准已经放弃了这个表达式。任何思考都是没有根据的。不同的编译器结果不同。

C语言中,int i = 3; k = (++i)+(++i)+(++i) 问k的值是多少? 很是纠结...
答案应该是:15 解释如下:++i表示先自加,然后再用i,也就是说i本来是3,经过++i之后,变成了4,在进行运算,所以k=(++i)+(++i)+(++i)=4+(++i)+(++i) ;i变成了4 所以第二个++i是以4可是的,经过自加后为5,在进行运算,则为4+5+(++i);第三个与第二个类似,是以5开始的,...

C语言:如果i=3,则k=(++i)+(++i)+(++i)执行过后k的值为?好评立刻。
k=(++i)+(++i)+(++i)++在变量前时优先级最高,因此优先于其他基本运算符执行,整个式子按从左到右依次解释执行 +是一个二元运算符,执行(++i)+(++i)时,由于括号优先级高于一切,式子从左到右计算,因此先计算第一个++i,此时i=4;再计算第二个++i,此时i=5;再计算+号,得5+5=10;...

C语言 int i=3 j=(++i)+(++i)+(++i)
1.i=3:2.(++i) \/\/i=4 第一个+数值 3.(++i) \/\/i=5 第二个+数值 4.(++i) \/\/i=6 第三个+数值 5.j=15.

C语言 int i = 3, k = (++i) + (++i) + (i++);求大神解释为什么k = 15...
k=(++i)+(++i);k=k+(i++);这是会发现在执行完第一行代码即就是k=(++i)+(++i)后k=10,也就是说多出来的一个1在这儿,问什么呢 打开对应的汇编语言会发现这个 系统将加号左面的i第一次自加后i=4 接着又将加号右面的i入栈自加此时i=5 然后将此时得到的结果入栈进行加法...

C语言:i=3,k=0;k=(++i)+(++i)+(++i)运行后的结果是16,请问是怎么编译的...
此题照理来说是先算括号里的i自增3次,括号算完i是6,再进行加,应该是18,问题是编译器算出来是16,初步推断是先算(++i)+(++i)得出是10,10再加++i(此时i是6)得出16,我再去研究研究………这是我刚刚说的k=(++i)+((++i)+(++i));得出是18(这是一般的正常顺序 而如果是(++i)+(++...

C语中.i=3;(++i)(++i)=?
因此逻辑如下:第一个(++i)= 4; 毫无疑问,++i 就是先递增后执行,也就是说,还未执行()内的时候,i 的值是3,执行()内部的时候,i 的值会被递增 1 变成(i = 4)而进入下一次运算,由此,第一个 (i++) 的值就是 4;到第二个 (++i) 的时候,i 的值已经被递增到 4,...

相似回答
大家正在搜