c语言i++和++i区别

前置加加和后置加加的区别:如果只是i++或++i,前面没有别的变量来接收赋值,如a=i++,那么跟i+=1,i=i+1汇编代码一样,如果左边有变量呢?前置加加:变量i先自增,然后赋值给寄存器eax,eax再赋值给a;后置加加:将i的值赋给eax,eax先赋值给a,然后i再赋值一次到eax,eax自增1,最后把eax的值写回i。后置比前置多了两句汇编代码,简单理解为i++是先使用后自增,++i是先自增再使用,但比较笼统,i++不一定先调用后自增,比如if(i++>6) break;
此处i的值先保存到编译器自动插入的临时变量上,然后i自增,最后用临时变量的值跟6比较(调用)

你可能感兴趣的:(c语言)