【摘要】:但是要注意,作为前缀使用时,须先自增(减),后使用;作为后缀使用时,须先使用,后自增(减)。例2-8前++和后++的差别及前--和后--的差别。图2-12程序运行结果通过这个例子,应该对自增自减运算符有所理解了。③自增自减运算符可以比i=i+1的形式节省运算时间,但是这种运算尤其是例2-9中的形式容易使编程者造成混乱。为了程序的可读性,建议编程者不要任意使用此运算符。
自增运算符++的作用是使变量的值增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中的形式容易使编程者造成混乱。为了程序的可读性,建议编程者不要任意使用此运算符。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。