说起这个i++, ++i 入门练习都会搞这个,一如既往,百试不爽。
表达式 a = i++; 它等价于 a = i ; i = i + 1;
表达式 a = ++i 它等价于 i = i + 1; a = i;
1、 首先两者的区别是:前者是先赋值,然后再自增;后者是先自增,后赋值
2、 ++i 和i++ 的使用,一般来说在循环域里面,这两者并没有什么很大的区别,因为编译器一般都会给你做优化。但是要注意其生存周期,我们要注意i值在程序流中的变化,如果是for、while循环判断中要特别注意++i的值比i++值要提前。
3、i=1 ; j=(++i)+(++i)+(++i); printf("j= %d/n",j); 这个结果是什么?没有结果,因为不同的编译器做出来的结果,你要纠结这个,哎我只能说那些书上纯粹是搞人。
以上我们只需记住先序后续递增,循环判断时的条件即可。
i += 2; 这个是 i = i + 2; 自身值加上2后赋值给自己。这个没有争议。
来骚年练习一下 i += (++i)+(++i)+(++i); 呵呵!!!