int i=3;k=(i++)+(++i)+(i++);求k,i的值
int i=3;k=(++i)+(++i)+(i++);
k=15,i=6;
int i=3;k=(++i)+(++i)+(++i);
k=18,i=6
int i=3;k=(i++)+(i++)+(i++);
k=9,i=6
i=6不管哪种,i都是加了三次,由3到最后的6
主要区别在于i++是先运算,后执行i=i+1
++i是先执行i=i+1,后运算
所以第一个先执行了两次i=i+1后i=5,三个相加后结果是15,然后再加1,i=6
第二个是执行了三次i=i+1后i=6,三个相加后结果是18
第三个是先执行相加,结果为9,后执行三次i=i+1,i=6
扩展资料:
C语言中的 i++ 和 ++i 的区别
i++和++i的区别就是:
i++ :先引用,后增加
++i :先增加,后引用
换句话就是:
i++ : 先在i所在的表达式中使用i的当前值,再让i加1
++i : 先让i加1,再在i所在的表达式中使用i的新值
取决于++和i的相对位置:
++在i前面,i先加1,然后在表达式中用i的值;++在i后面,先在表达式中用i的值,然后i再加1。
例如:
1、i ++:
int i = 0;
while (i < 10) {
i ++;
}
2、++i:
int i = 0;
while (i < 10) {
++ i;
}
1与2,经过运算后,i的值都是10。在while和for循环中的 ++i 和 i++ 是没有区别的。