关于赋值表达式的问题同样的程序:int i=5,q;q=(++i)+(++i)+(++i);printf("%d\n",q);在TC 下的输出是 24 在VC++6.0或dev c++下输出的值是 22不知道C++编译器在这里是怎么对 q=(++i)+(++i)+(++i) 进行计算的,22 是怎么

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 15:26:29
关于赋值表达式的问题同样的程序:int i=5,q;q=(++i)+(++i)+(++i);printf(

关于赋值表达式的问题同样的程序:int i=5,q;q=(++i)+(++i)+(++i);printf("%d\n",q);在TC 下的输出是 24 在VC++6.0或dev c++下输出的值是 22不知道C++编译器在这里是怎么对 q=(++i)+(++i)+(++i) 进行计算的,22 是怎么
关于赋值表达式的问题
同样的程序:
int i=5,q;
q=(++i)+(++i)+(++i);
printf("%d\n",q);
在TC 下的输出是 24
在VC++6.0或dev c++下输出的值是 22
不知道C++编译器在这里是怎么对 q=(++i)+(++i)+(++i) 进行计算的,
22 是怎么得来的,
22是在VC6.0,DEVC++中得到的,不存在正确与否,
想知道它在这些编译器的计算规则,请指教!

关于赋值表达式的问题同样的程序:int i=5,q;q=(++i)+(++i)+(++i);printf("%d\n",q);在TC 下的输出是 24 在VC++6.0或dev c++下输出的值是 22不知道C++编译器在这里是怎么对 q=(++i)+(++i)+(++i) 进行计算的,22 是怎么
在研究之中,但是我认为24是对的.因为是8+8+8.
然后我又帮你想了两天.得出了正确结论:
在VC6.0,DEVC++中是22的原因是:
它们的编译器保证在赋值是始终是:两个相加-〉赋值-〉两个相加-〉赋值.
所以,过程就很清晰了:
q=7+7(=14);//先算到第二个++i;
q=14+8=22);//之后每次都算一个++i就加上去;
如果是:多加一些++i,如:
q=(++i)+(++i)+(++i)+(++i)+(++i); //则是:q=(7+7)+8+9+10;依次类推.
如果是:将i=4赋初值,则是:
q=(6+6)+7+8;
反正我觉得就是这样.应该是对的.

关于赋值表达式的问题同样的程序:int i=5,q;q=(++i)+(++i)+(++i);printf(%d ,q);在TC 下的输出是 24 在VC++6.0或dev c++下输出的值是 22不知道C++编译器在这里是怎么对 q=(++i)+(++i)+(++i) 进行计算的,22 是怎么 赋值表达式的值赋值表达式有值吗? 赋值语句与赋值表达式的区别 C语言中赋值计算的问题:定义int a=10,则表达式a+=a-=a*=a的值是多少?怎么算出来的? 关于C++问题,我是初学者.有以下定义语句:double a,b; int w; long c;若各变量已正确赋值,则下列选项中红正确的表达式是:A.a=a+b=b++ B.w%((int)a+b)C.(c+w)%(int)aD.w=a==b求辨析 假设定义:int x=3,y=3;则复合赋值表达式x/=1+y的值为? 假设定义:int x=3,y=3;则复合赋值表达式x/=1+y的值为? 已知int k;且k已经正确赋值,则下列表达式中存在语法错误的是中A 2 关于逻辑表达式的问题!void main(){int x=3,y=4,z=2,i;i=xy;printf(i=%d,z=%d,i,z)}i=0,z=2i=0我明白!i=xy这里不是已经给z复制为10了吗?怎么回事!上面的“复制”改为“赋值”! C语言问题,关于循环语句下列C语言程序段中,不会构成死循环的是:A)int x=10;while(x);--x;B)int x=10; while(x=5);C)int x; for (x=0;x=1000);while语句怎么没有循环体,也没有表达式,当然这个题我也不会做. 高中数学程序框图问题:为什么不能用赋值语句进行代数式的演算,谢谢 C/C++允许用赋值后的变量定义数组长度么?int n=10;int array[n];这个样子对么?我看书上说定义数组长度时必须是常量或常量表达式,但我用上面的语句写C语言程序也没出错,请问这应该怎么解 在C语言赋值语句中,给多个变量赋值,用逗号隔开,岂不是相当于一个逗号表达式?例如.int a=1,b=2;逗号表达式的形式是:表达式1,表达式2.这么说来,上面的那个赋值语句不是相当于一个逗号表达 关于求解函数表达式时的定义域问题数学中有这样一类问题:F(X)+F(-X)=代数式,要求F(X)表达式,方法是赋值法,将X=-X带入,但是我想知道赋值求解前要不要保证F(X)的定义域关于原点对称呢? 如果 C语言表达式的计算练习掌握算术表达式、逗号表达式、赋值表达式的计算练习 为什么用这个表达式,非常简单的程序用for循环求1+2+……+100的和:main(){int sn=0,i; /* 定义sn,i的类型为整数形,sn赋值为0*/for(i=1;i 若a,b为int型变量且已分别赋值为2,6.表达式(a++)+(++b) +a*b的值是________ . 一、 若有定义:int x,*pb;,则正确的的赋值赋值表达式是() A、pb=&x B、pb=x C、*pb=&x D、*pb=*x 二、