格式省略了,大致意思就是如下。int a,i;a=70;i=1;if(a>80&&i++) printf("i") else printf("i")为什么i=2不是1
因为if(a>80&&i++)这条语句
a>80和i++这个条件同时成立,才进行输出,因此i++这里i++需要执行后再输出,也就是自增1之后输出,结果为2。
希望对题主有所帮助!可以的话,帮忙点个采纳!
i++先用i进行表达式计算,然后i才加1
++i是i先加1,然后再进行表达式计算
printf("i") 这是输出字符i,不是变量i,你写错了吧
if(a>80 && i++),这个判断是与操作,与操作如果左侧表达式为假,那么右侧表达式是不执行的。因为a=70,是小于80的,所以左侧表达式为假,因此i++并没有执行,i还是初始值1,因此最终输出是1
i++是先用后加,++i是先加后用。比如i=1,输出i++得到的结果是1,输出之后i会+1;输出++i得到的结果是2
这个题很简单,i++的意思是,i执行加一操作,但是在此处返回旧值;++i的意思是i执行加一操作,在此处返回新值。
不论i++还是++i,两者操作以后,i本身的值都自增了1,但是i++返回了自增前的旧值,++i返回了自增后的新值。
i++是指先用后加,++i是指先加后用,比如说定义一个cnt=0,a[cnt++]=a[cnt],cnt+=1,a[++cnt]=cnt+=1,a[cnt]