我在VC6.0环境下运行下列程序:
void Main()
{
int i=3,k;
k = (++i)+(++i)+(++i);
printf("%d\n",k);
}
结果为16,不知道编译器是怎么算出来的,求高手赐教!
结果为16,说明用的编译环境是VC++6.0,如用TC环境,则结果为18。
VC环境下,对于前增减运算(++i),自增自减是按从左到右扫描顺序,以一个运算符两边涉及前自增减的两个运算对象为单位进行之前增减的;对于后增减运算(i++),是以整个表达式为单位最后统一增减的。
如(i++)+(++i)+(++i)是先对第一个加法运算符两端的运算对象处理,先自增一次再求解表达式前两项,然后再对i自增一次再求前一步骤的值与最后一项的和,若初始值i=1,则最终结果2+2+3=7。
(++i)+(++i)+(++i),首先扫描求解前半部分,即(++i)+(++i)的值。先对i进行两次自增运算,i的值变为5,再计算i+i的值为5+5=10,然后再求解后半部分,即10+(++i)的值,先对变量i自增1次,i的值变为6,再计算10+6=16,所以最终把16赋给变量c。
扩展资料
表达式(++i)+(++i)+(++i)结果的源代码如下
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char** argv)
{
int i=3,j;
j=(i++)+(i++)+(++i);
printf("i = %d, j = %d\n",i,j);
exit(0);
}
C语言表达式(++i)+(++i)+(++i)结果多少?
结果为16,说明用的编译环境是VC++6.0,如用TC环境,则结果为18。VC环境下,对于前增减运算(++i),自增自减是按从左到右扫描顺序,以一个运算符两边涉及前自增减的两个运算对象为单位进行之前增减的;对于后增减运算(i++),是以整个表达式为单位最后统一增减的。如(i++)+(++i)+(++i)是...
设整型变量 i 值为2,表达式(++i)+(++i)+(++i)的结果是
楼上都不对,最终答案是15。在此表达式执行的开始,i会被++三次,值变为5。然后5+5+5=15。
c语言中,i=1,(++i)+(++i)+(++i)=?
\/\/(++i)+(++i)+(++i)=?先说明一下:++i的意思可分解成以下两步:i=i+1,i再参与运算 上面的表达式运算过程:(同级运算从左到右,有括号先算括号)一、先运行第一个++i, i的结果是2 二、再运行第二个++i, i的结果是3 三、计算前两式之和。因为,此时运算的是i+i,所以是3+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的值为?好评立刻。
结果应该是18.编译程序是这样处理的,对有含有++i的表达式,先进行i的自增运算,然后再计算其所在的表达式。对于k=(++i)+(++i)+(++i)这个表达式,先计算其中的++运算,即连续进行三次的自增1,即i=6,然后再计算这个表达式,即6+6+6=18 ...
c语言中计算(++i)+(++i)+(i++)的值
假如i=10,那(++i)+(++i)+(i++)的结果是10+10+11=31,计算完成之后i的值是13。
设整型变量i值为2,表达式(++i)+(++i)+(++i)的结果是( )。 A. 6 B...
我们一步一步的看这个问题 int i=2;i++;\/\/i=2自加1后i为3 i++;\/\/i=3自加1后为4 I++;\/\/i=4自加后为5 所以:(++1)+(++1)+(++1)=13 是这个意思吧?那选择d吧!还有d你没写出来是吧?
一个简单表达式(++i)+(++i)+(++i)的值是多少?
i=4 ++i 5 ++i 6 ++i 7 结果18
帮忙计算一个C语言题目:先定义i=3,请计算(++i)+(++i)+(++i)的值!
++i 是i先加1,然后加1 后的结果进行下一步运算。第一个++i 和第二个++i 同时执行得到 i = 5。然后5+5 = 10。再将10 与第三个++i 相加,此时i = 6所以最后i = 16。做加法时要先求两边表达式,而且只有一个变量。
(++1)+(++1)+(++1)算法?C语言中
那么i=2,再到中间的i,现在它的值是2 ,再加上1,i=3,再到最后一个i,现在它的值是3,再加上1,i=3,那么结果是4。其实挺好记的,自增自减运算符在前就是先加1,再参加其他运算,在后就先参加运算再加1。上式表达式的正确形式是int=i;(++i)+(++i)+(++i);...