int i=0,j=3; while(i2) { printf("%d,%d\n",i,j); j=3-i++; } 输
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/05/15 09:50:18
int i=0,j=3; while(i2) { printf("%d,%d\n",i,j); j=3-i++; } 输出的结果是0,3 1,
如果是的话,那么 j=3-i++; 就等价于j=3-i;i++;吧?但是不是说单目运算符优先级别高于双目运算符吗,那不是应该先i++了吗?
如果是的话,那么 j=3-i++; 就等价于j=3-i;i++;吧?但是不是说单目运算符优先级别高于双目运算符吗,那不是应该先i++了吗?
输出的结果是你写的.
单目运算符优先级别高于双目运算符
j=3-i++; 是先计算x=i++ 再计算j=3-x
但是这里面有个关键,就是
i++是一个表达式,它的值等于没有变化前的i
++i的值等于变化后的i
比如 i = 0 那么 (i++) = 0 (++i) = 1
所以:j=3-i++; 是先计算x=i++=0 但是i已经为1了 再计算j=3-x=3
这样就出来你所写的结果了.你是理解成了i++等于i变化后的值,所以有上面的疑惑
单目运算符优先级别高于双目运算符
j=3-i++; 是先计算x=i++ 再计算j=3-x
但是这里面有个关键,就是
i++是一个表达式,它的值等于没有变化前的i
++i的值等于变化后的i
比如 i = 0 那么 (i++) = 0 (++i) = 1
所以:j=3-i++; 是先计算x=i++=0 但是i已经为1了 再计算j=3-x=3
这样就出来你所写的结果了.你是理解成了i++等于i变化后的值,所以有上面的疑惑
int i=0,j=3; while(i2) { printf("%d,%d\n",i,j); j=3-i++; } 输
printf("%d*%d=%-3d",i,j,i*j);
#include main() { int i=2,j=1,k=3; printf("%d\n",i && (i+j)&
i=3 j=i++ printf('%d,i)
main( ) {int i,j,m,n; i=8;j=10; m=++i;n=j++; printf("%d,%d,%
main() { int i=3,j=2,k; k=i+j; { int k=8; if(i=4) printf("%d
C语言问题: printf("%d %d %d %d\n",i,j,m=++i,n=j++);
printf("i=%d,j=%d,k=%d \n",i,j,就是里面的符号各是意思?
c++?i=0,j=5;?do?{i++;j--;?if(i>3)break;}?while(j>0)?求i j
for( int i=0,j=1; j < 5; j+=3 ) i=i+j; 为什么等于5
main() {int x=10,i=1,j=2; printf (“%d,%o,%x\n”,x,x,x); print
int i=2,j=1,k=3 i&&(i+j)&k|i+j