自增/自减 运算符
功能:操作对象自增或自减1;
(自减和自增用法一致,这里用自增的用法来说明)
分类:
前自增:++i
后自增:i++
前/后 自增的异同
相同:最终i的值都加1;
不同:后自增整体表达式的值是i加1前的值;
前自增整体表达式的值是i加1后的值;
举例说明:
k = ++i; 是先执行i=i+1,再执行k=i;
k = i++; 是先执行k=i;再执行i=i+1;
注意要点:
1.编程时,尽量屏蔽++i和i++的区别
如:尽量不要写k=i++,因为k=i++和k=++i有区别;
而for (i; i<100; ++i) 则推荐使用,因为这里的for (i; i<100; ++i)和for (i; i<100; i++) 没有区别。
2.自增应单独成语句,不要嵌套使用
如:int m = ++i + i++ + i; 这样写是不对的,不但是不规范的代码,而且是不可移植的代码,在不同的编译器的运行结果有可能不一样;
再如:prinft (“%d %d %d”,i++ ,++i, i); 这样写也不对,理由同上。
三目运算符
?:
格式:A ? B : C
功能:类似if语句的功能
if (A)
B;
else
C;
举例:i = (5>3 ? 10 : 20); 因为5>3成立,所以最终i的值等于10。
逗号表达式
格式:(A, B, C, D)
功能:从左向右执行
最终表达式的值为最后一项的值
注意:逗号是一种执行顺序点,即在遇到逗号时,逗号之前的表达式要执行完得到结果。
举例:
int i = 0;
int j = 1;
i = (j++, ++j, j+2, j-1);
最终i的值为2;执行进程为:
i = j++ >> i = 1 j = 2
i = ++j >> i = 3 j = 3
i = j+2 >> i = 5 j = 3
i = j -1 >> i = 2 j = 3