C语言printf中的问题
我用的是VC6.0,执行出来是下图1111100.理论上从右算的结果是1001100.....求大神解释#include<stdio.h>intmain(){inti;i...
我用的是VC6.0,执行出来是下图
1111100.理论上从右算的结果是 1 0 0 1 1 0 0.....求大神解释
#include<stdio.h>
int main ( )
{ int i ;
i=1;
printf("1)i=%d; 2)i=%d; 3)i=%d; 4)i=%d; 5)i=%d; 6)i=%d; 7)i=%d;\n", i, i++, i , i--,++i, i, --i);
} 展开
1111100.理论上从右算的结果是 1 0 0 1 1 0 0.....求大神解释
#include<stdio.h>
int main ( )
{ int i ;
i=1;
printf("1)i=%d; 2)i=%d; 3)i=%d; 4)i=%d; 5)i=%d; 6)i=%d; 7)i=%d;\n", i, i++, i , i--,++i, i, --i);
} 展开
展开全部
按从右往左:
7:--i // i=0
6:i // i=0
5:++i // i=1
4 ~ 1://i=1
然后函数printf执行完毕
再执行i--,i++。
你要知道的是 后 ++ 和 后 -- 是在函数执行完了之后才执行的 。
7:--i // i=0
6:i // i=0
5:++i // i=1
4 ~ 1://i=1
然后函数printf执行完毕
再执行i--,i++。
你要知道的是 后 ++ 和 后 -- 是在函数执行完了之后才执行的 。
追问
后 ++ 和 后 -- 什么意思?你的意思是从右往左执行一遍以后 再把i的值代入i++,i--里再运行一遍?实在不太明白,你能加我QQ:398126362 解释一下么?
追答
printf("1)i=%d; 2)i=%d; 3)i=%d; 4)i=%d; 5)i=%d; 6)i=%d; 7)i=%d;\n", i, i++, i , i--,++i, i, --i);
你的那个 printf 语句相当于这样:
printf("1)i=%d; 2)i=%d; 3)i=%d; 4)i=%d; 5)i=%d; 6)i=%d; 7)i=%d;\n", i, i, i , i,++i, i, --i);
i--;
i++;
就是说后++和后-- 在printf的时候并没有执行,是在printf之后执行的,而前++和前--是在调用之前就执行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询