补.从零开始学习C语言--运算符补充(自增/自减、三目、逗号)

自增/自减 运算符

 

功能:操作对象自增或自减1;

(自减和自增用法一致,这里用自增的用法来说明)

 

分类:

前自增:++i

后自增:i++

 

/后 自增的异同

相同:最终i的值都加1

不同:后自增整体表达式的值是i1前的值;

   前自增整体表达式的值是i1后的值;

举例说明:

k = ++i; 是先执行i=i+1,再执行k=i

k = i++; 是先执行k=i;再执行i=i+1

 

注意要点:

1.编程时,尽量屏蔽++ii++的区别

如:尽量不要写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    

你可能感兴趣的:(★零基础C语言入门★)