(本人使用的是vs2022,win11,64位操作系统)
1.关于i++和++i的理解:
i++的意思是i先自增,再返回自增前的值,但是接下来的i的值已经变成了i++后的值,只是i++此处的值被返回了自增前的值而已。
++i的意思是i先自增,然后返回自增后的值。
2.printf中的i++与++i:
在printf(“%d%d%d",i++,i++,i++)中,它的计算规律是从右到左进行逐步计算。
例如:
int main()
{
int i = 0;
printf("%d%d%d%d", ++i, i++,++i,i++);
return 0;
}
从右到左看,step1:i++从0变成1,并且将1传给下一个++i,再返回0;
step2:++i接收1并且自增成2,并且传递2给下一个i++;
step3;i++接收2,将2变成3,并且传递3给下一个++i,再返回2;
step4:++i接收3并且自增成4,然后再将该printf中的++i和i全部变成4;
最终结果是4240;
需要注意的是,++i和i在printf中的值都是最后一步完成后才确定的!!!最后i变成了什么值,那么它们打印出来就是啥值!!!
最后的最后,如果你感觉懂了就去vs试试这个规律,加深印象!!!