c語言中整型運算符有哪些?
運 算 符
(1) 算術(shù)運算符(+, -, *, /, %, ++, --) 。
(2) 關(guān)系運算符(<, >, <=, >=, ==, ![KG-*8]=) 。
(3) 邏輯運算符(!, &&, ||) 。
(4) 位運算符(<<, >>, ~, |, ^, &) 。
(5) 賦值運算符(= , 及其雙目運算符的擴展賦值運算符) 。
(6) 條件運算符(? :) 。
(7) 逗號運算符(,) 。
(8) 指針運算符(*, &) 。
(9) 求字節(jié)數(shù)運算符(sizeof) 。
(10) 強制類型轉(zhuǎn)換運算符(( 類型)) 。
(11) 分量運算符(·, ->) 。
(12) 下標運算符( [ ]) 。
(13) 圓括號運算符(( )) 。
算術(shù)運算符和賦值運算符
說明:
(1) +, -, *, / 與數(shù)學中運算類似, 先乘除后加減, 也就是按優(yōu)先級順序進行運算,優(yōu)先級小的先運算。要改變運算順序只要加括號就可以了,括號全部為圓括號,必須注意括號的配對,它們適用于C 的幾乎全部數(shù)據(jù)類型( 指針類除外) 的各種運算(++, -- 除外) 。除法運算符(/) 在用于兩個整型數(shù)據(jù)運算時,其運算結(jié)果也是整數(shù),余數(shù)總是被截掉。如1/2 的結(jié)果是0 ;10/3 的結(jié)果是3 。
(2) 求余運算符(%) 僅用于整型數(shù)據(jù),不能用于實型和雙精度實型。它的作用是取整數(shù)除法的余數(shù)。如1%2 的結(jié)果是1 ; 10%3 的結(jié)果也是1 。
(3) 賦值運算符(=) 是將右邊表達式的值賦給左邊的變量。 賦值運算符左邊必須是變量等有存貯單元的元素,而不能是常量或表達式。如x=x+1 是合法的,即把x 的值加上1 后再賦給x ,而x+1=x 卻是非法的,因為x+1 不是一個存貯單元, 不能被賦以值。賦值號有別于數(shù)學中的等號,這一點是要注意的。
(4) ++, -- 僅用于整型變量,指針變量。用于整型變量在原值上加1 或減1 ;用于指針變量是取下一地址或上一地址。 關(guān)于指針部分的使用在第八章中介紹。 增1 和減1 運算符用在表達式中時,寫法是有差別的:如果運算符在操作數(shù)前面, 則在表達式“ 引用” 該操作數(shù)前,先對其作加1 或減1 運算; 如果運算符在操作數(shù)之后,則先“ 引用” 該操作數(shù),然后再對它作加1 或減1 運算??紤]以下程序:
main( )
{ int x, y;
x=10;
y=++x;
printf(″%d, %d\n″, x, y);
}
運算結(jié)果為
11 , 11
此時y 的值和x 的值都為11 。 然而換一種寫法:
main( )
{ int x, y;
x=10;
y=x++ ;
printf(″%d, %d\n″, x, y);
}
運行結(jié)果為
11 , 10
此時y 的值是10 ,而x 的值自增后為11 。上述兩種情況x 都變成了11 ,而y 的值卻不同。它們的差別只在于給x 加1 的時機不同。 此時賦值即為引用。 再如進行輸出操作時,有以下程序段:
x=10;
printf(″x=%d\n″, ++x);
運行結(jié)果為x=11 ,執(zhí)行其下一條語句時x 也是11 , 而程序段:
x=10;
printf(″x=%d\n″, x++) ;
(5) +, -, *, /, % 可以與賦值號= 組成復(fù)合賦值運算符+=, -=, *=, /=, %= 。
如a=a+b 可以寫成a+=b ,a=a*b 可以寫成a*=b 。其余類推。 這樣書寫簡練,運行速度快,也提高了編譯效率。