关于赋值表达式的问题同样的程序:int i=5,q;q=(++i)+(++i)+(++i);printf("%d\n",
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/06 02:45:29
关于赋值表达式的问题
同样的程序:
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 是怎么得来的,
22是在VC6.0,DEVC++中得到的,不存在正确与否,
想知道它在这些编译器的计算规则,请指教!
在研究之中,但是我认为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;
反正我觉得就是这样.应该是对的.
然后我又帮你想了两天.得出了正确结论:
在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\n",
return的意思?#include int f(int i){printf("i=%d\n",i);return 0;
int i=9999;printf("%d\n",printf("%d",printf("%d",printf("%d"
#include void main() { int i=10; printf("%d,%d,%d\n",++i,i,i
以下程序段的输出结果是什么?: int =11; printf(''%\n'',i);
int i=10;while(i--);printf("%d",i);则输出i的值__________
main() { int i=3,b; b=(i--)+(i--)+(i--); printf("%d,%d\n",b,
(i!=p) 求解释main(){ int i,j,p,q,s,a[10]; printf("\n input 10 n
#include void main() { int i=3; printf("i++=%d\n,++i=%d\n",
下面程序运行结果main() {int a[6],i; for(i=1;i3))%5; printf("%2d",a[i
#include void main(){int n,i; scanf("%d",&n);i=n&7; printf("
电流表达式I=Q/t中Q的含义