C語言中都有那些運算子?
運 算 符
(1) 算術運算子(+, -, *, /, %, ++, --) 。
(2) 關係運算子(<, >, <=, >=, ==, ![KG-*8]=) 。
(3) 邏輯運算子(!, &&, ||) 。
(4) 位運算子(<<, >>, ~, |, ^, &) 。
(5) 賦值運算子(= , 及其雙目運算子的擴充套件賦值運算子) 。
(6) 條件運算子(? :) 。
(7) 逗號運算子(,) 。
(8) 指標運算子(*, &) 。
(9) 求位元組數運算子(sizeof) 。
(10) 強制型別轉換運算子(( 型別)) 。
(11) 分量運算子(·, ->) 。
(12) 下標運算子( [ ]) 。
(13) 圓括號運算子(( )) 。
算術運算子和賦值運算子
說明:
(1) +, -, *, / 與數學中運算類似, 先乘除後加減, 也就是按優先順序順序進行運算,優先順序小的先運算。要改變運算順序只要加括號就可以了,括號全部為圓括號,必須注意括號的配對,它們適用於C 的幾乎全部資料型別( 指標類除外) 的各種運算(++, -- 除外) 。除法運算子(/) 在用於兩個整型資料運算時,其運算結果也是整數,餘數總是被截掉。如1/2 的結果是0 ;10/3 的結果是3 。
(2) 求餘運算子(%) 僅用於整型資料,不能用於實型和雙精度實型。它的作用是取整數除法的餘數。如1%2 的結果是1 ; 10%3 的結果也是1 。
(3) 賦值運算子(=) 是將右邊表示式的值賦給左邊的變數。 賦值運算子左邊必須是變數等有存貯單元的元素,而不能是常量或表示式。如x=x+1 是合法的,即把x 的值加上1 後再賦給x ,而x+1=x 卻是非法的,因為x+1 不是一個存貯單元, 不能被賦以值。賦值號有別於數學中的等號,這一點是要注意的。
(4) ++, -- 僅用於整型變數,指標變數。用於整型變數在原值上加1 或減1 ;用於指標變數是取下一地址或上一地址。 關於指標部分的使用在第八章中介紹。 增1 和減1 運算子用在表示式中時,寫法是有差別的:如果運算子在運算元前面, 則在表示式“ 引用” 該運算元前,先對其作加1 或減1 運算; 如果運算子在運算元之後,則先“ 引用” 該運算元,然後再對它作加1 或減1 運算。考慮以下程式:
main( )
{ int x, y;
x=10;
y=++x;
printf(″%d, %d\n″, x, y);
}
運算結果為
11 , 11
此時y 的值和x 的值都為11 。 然而換一種寫法:
main( )
{ int x, y;
x=10;
y=x++ ;
printf(″%d, %d\n″, x, y);
}
執行結果為
11 , 10
此時y 的值是10 ,而x 的值自增後為11 。上述兩種情況x 都變成了11 ,而y 的值卻不同。它們的差別只在於給x 加1 的時機不同。 此時賦值即為引用。 再如進行輸出操作時,有以下程式段:
x=10;
printf(″x=%d\n″, ++x);
執行結果為x=11 ,執行其下一條語句時x 也是11 , 而程式段:
x=10;
printf(″x=%d\n″, x++) ;
(5) +, -, *, /, % 可以與賦值號= 組成複合賦值運算子+=, -=, *=, /=, %= 。
如a=a+b 可以寫成a+=b ,a=a*b 可以寫成a*=b 。其餘類推。 這樣書寫簡練,執行速度快,也提高了編譯效率。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69914734/viewspace-2654629/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C語言中宏定義都有那些盲區?C語言
- c語言運算子詳解C語言
- c語言中 *p++ 和 (*p)++ 有什麼區別?以及C語言運算子的優先順序。整理。C語言
- 各語言中的三元運算子與 golang 對比Golang
- C語言學習筆記--C運算子C語言筆記
- C語言運算子優先順序C語言
- c語言-運算子,陣列,指標C語言陣列指標
- 關於C語言的位運算子C語言
- C 語言運算子優先順序
- C語言運算子深度解析--超詳細C語言
- C++ 迭代器運算子 箭頭運算子->C++
- C語言中的#和##C語言
- 07-C語言運算子-指趣學院C語言
- 逍遙自在學C語言 | 邏輯運算子C語言
- 逍遙自在學C語言 | 算數運算子C語言
- 逍遙自在學C語言 | 關係運算子C語言
- Go語言運算子Go
- 運算子、分支語句
- Go 語言運算子Go
- c運算子優先順序表-最全c語言運算子優先順序和結合性對照表C語言
- c語言中sizeof詳解C語言
- 解析C語言中的sizeofC語言
- C語言中extern的用法C語言
- c語言中的作用域C語言
- 【C】 30_C語言中的字串C語言字串
- java基本語法--運算子Java
- C++ 運算子過載C++
- C++——運算子過載C++
- 瞭解下C# 運算子C#
- C++運算子過載C++
- C語言常被搞錯的運算子優先順序C語言
- C語言表示式和運算子大學霸IT達人C語言
- c語言中的getchar()和EOFC語言
- C語言中結構體感悟C語言結構體
- C 語言中的 sscanf 詳解
- C 語言中的 time 函式函式
- c語言中const修飾符C語言
- static在C語言中的作用C語言