自增 ,自減 運算子

2021-07-02 23:42:04 字數 1164 閱讀 8265

自增1運算子記為「++」,其功能是使變數的值自增1。自減1運算子記為「--」,其功能是使變數值自減1。自增1,自減1運算子均為單目運算,都具有右結合性。可有以下幾種形式: ++i i自增1後再參與其它運算。--i i自減1後再參與其它運算。

i++  i參與運算後,i的值再自增1。

i--  i參與運算後,i的值再自減1。

在理解和使用上容易出錯的是i++和i--。 特別是當它們出在較複雜的表示式或語句中時,常常難於弄清,因此應仔細分析。

void main() i<--8

i<--i+1

i<--i-1

i<--i+1

i<--i-1

i<--i+1

i<--i-1 int i=8;

printf("%d\n",++i);

printf("%d\n",--i);

printf("%d\n",i++);

printf("%d\n",i--);

printf("%d\n",-i++);

printf("%d\n",-i--);

i的初值為8

第2行i加1後輸出故為9;

第3行減1後輸出故為8;

第4行輸出i為8之後再加1(為9);

第5行輸出i為9之後再減1(為8) ;

第6行輸出-8之後再加1(為9);

第7行輸出-9之後再減1(為8)

void main()

i<--5,j<--5,p<--0,q<--0

i+i+i--->p,i+1-->i,i+1-->i,i+1-->i

j+1->j,j+1->j,j+1->j,j+j+j->q int i=5,j=5,p,q;

p=(i++)+(i++)+(i++);

q=(++j)+(++j)+(++j);

這個程式中,對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,然後i i 1 i 先使用i,然後i i 1 i 先i i 1然後使用i i 先i i 1 然後使用i 以下使用vc下除錯的結果,不同的編譯器可能有不同的結果。i 3 例1printf d i 結果輸出4 例2printf d i 結果輸出3 例3printf resu...

自增和自減運算子

自增和自減運算子 在c語言中有許多運算子,邏輯運算,賦值運算,關係運算 其中最難理解的莫過於自增 和自減 運算了。自增 自減 有兩種方式,下面分別進行分析。1 在前。i i 其用法是在整個表示式運算之前先進行自增 自減 運算,然後再進行表示式運算。例如進行如下計算 intx y x 8 y x 執行...

自增與自減運算子

include int main 注意 無論是a 還是 a都等同於a a 1,在表示式執行完畢後a的值都自增了1,無論是a 還是 a都等同於a a 1,在表示式執行完畢後a的值都自減少1 c程式為邏輯逐行運算,遂值在逐行運算後 不斷在變化,只是區別與輸出與否。自增自減運算 字尾自增 x i x i ...