遞增運算符

遞增運算符是單目運算符,C語言中有兩種非常有用的運算符++和--,分別稱為遞增和遞減運算符,對變數執行加1或減1操作,且運算結果仍賦給該變數。

C語言中的遞增、遞減運算符

遞增、遞減運算符和負號一樣都是 單目運算符,統稱 單項算術運算符,如表所示:

運算符 名稱 示例 等價表達式
++ 遞增 i++或++i i=i+1
-- 遞減 i--或--i i=i-1

++和--既可寫在變數之前,稱為 前置運算,如:++a;--a;++和--也可以寫在變數之後,稱為 後置運算,如:a++;a--。

單獨一個變數實行前置運算或後置運算,其結果是 相同的,都是使該變數的值增加或減少1 然而,當它們用在 表達式中,其效果就不同了。當遞增或遞減運算符放在其運算變數前面進行前置運算時,C語言在使用該變數之前進行遞增或遞減操作;如果運算符在運算變數的後面進行後置運算,那么,C語言在使用運算變數的值之後執行遞增或遞減運算。

分析以下程式的輸出結果。

#include <stdio.h>

void main()

{

int i1=2,i2=2,j1,j2;

j1=i1++;j2=++i2; /*①*/

printf("%d,%d,",j1,j2); /*②*/

printf("%d,%d\n",i1++,++i2); /*③*/

}

輸出結果是:

2,3,3,4

解釋

執行語句①之後,j1的值為2(因為i1++先返回i1的值,再將i1增1),j2的值為3(因為++i2將i2先增1後返回i2的值),i1和i2的值均為3。執行語句②輸出2和3。執行語句③時,輸出3和4。

注意

++和--運算符和單目負號運算符屬於同一優先權,也就是說比*、/、%都要高,同樣是按 從右到左結合的。如-i++相當於-(i++)。

php遞增/遞減運算符

php 支持 C 風格的前/後遞增與遞減運算符 。

注: 遞增/遞減運算符不影響布爾值。遞減 NULL 值也沒有效果,但是遞增 NULL 的結果是 1。

一個簡單的示例腳本:

<?phpecho "<h3>Postincrement</h3>";$a = 5;echo "Should be 5: " . $a++ . "<br />/n";echo "Should be 6: " . $a . "<br />/n";echo "<h3>Preincrement</h3>";$a = 5;echo "Should be 6: " . ++$a . "<br />/n";echo "Should be 6: " . $a . "<br />/n";echo "<h3>Postdecrement</h3>";$a = 5;echo "Should be 5: " . $a-- . "<br />/n";echo "Should be 4: " . $a . "<br />/n";echo "<h3>Predecrement</h3>";$a = 5;echo "Should be 4: " . --$a . "<br />/n";echo "Should be 4: " . $a . "<br />/n";?>

在處理字元變數的算數運算時,php 沿襲了 Perl 的習慣,而非 C 的。例如,在 Perl 中 'Z'+1 將得到 'AA',而在 C 中,'Z'+1 將得到 '['(ord('Z') == 90,ord('[') == 91)。注意字元變數只能遞增,不能遞減。

例子 15-4. 涉及字元變數的算數運算

<?php$i = 'W';for ($n=0; $n<6; $n++) { echo ++$i . "/n";}?>上例將輸出:

XYZAAABAC

遞增或遞減布爾值沒有效果。

相關詞條

熱門詞條

聯絡我們