首页 理论教育 C语言自增自减运算符

C语言自增自减运算符

时间:2023-10-27 理论教育 版权反馈
【摘要】:但是要注意,作为前缀使用时,须先自增(减),后使用;作为后缀使用时,须先使用,后自增(减)。例2-8前++和后++的差别及前--和后--的差别。图2-12程序运行结果通过这个例子,应该对自增自减运算符有所理解了。③自增自减运算符可以比i=i+1的形式节省运算时间,但是这种运算尤其是例2-9中的形式容易使编程者造成混乱。为了程序的可读性,建议编程者不要任意使用此运算符。

C语言自增自减运算符

自增运算符++的作用是使变量的值增1,自减运算符--的作用是使变量的值减1。

++i(--i):先使i自增(减)1,然后再参与其他运算。

i++(i--):i先参加其他运算后,i的值再自增(减)1。

总体来说,++i和i++都包含一个i=i+1的操作,--i和i--都包含一个i=i-1的操作。但是要注意,作为前缀使用时,须先自增(减),后使用;作为后缀使用时,须先使用,后自增(减)。我们通过下面的例子来理解这个问题。

例2-8 前++和后++的差别及前--和后--的差别。

程序运行结果如图2-12所示。

图2-12 程序运行结果

通过这个例子,应该对自增自减运算符有所理解了。

若表达式中包含多个前++、后++运算,那么这些子表达式在不同编译器中的执行次序和计算结果可能不同,下例是在VC编译器中的执行次序及结果。(www.xing528.com)

例2-9 表达式中子表达式的求值次序。

程序运行结果如图2-13所示。

图2-13 程序运行结果

这个程序中,对“p=(i++)+(i++)+(i++);”应理解为三个i相加,故p的值为15;然后i再三次自增1,相当于加3,故i的最后值为8。而对于q的值则不然,“q=(++j)+(++j)+(++j);”应理解为q先自增1,再参与运算,由于q三次自增1后的值为8,三个8相加的和为24,j的值仍为8。

注意:

①自增自减运算只能用于变量,不能用于常量和表达式。

②其结合性是自右至左。

③自增自减运算符可以比i=i+1的形式节省运算时间,但是这种运算尤其是例2-9中的形式容易使编程者造成混乱。为了程序的可读性,建议编程者不要任意使用此运算符。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈