你所不知道的坑 C語言運算子!!!!!

2021-08-18 04:29:41 字數 3389 閱讀 6561

c語言中運算子作為最基本的結構,起著不可忽視的作用,而像我們這樣的新手,初期很容易在這裡栽坑。因此操作符的總結是必要的。

———————————————————下面就是詳細的分析各種操作符———————————————————

一、 算術運算子:用於各類數值

運算。包括加(+)、減(-)、乘(*)、除(/)、求餘(或稱模運算,%)、自增(++)、自減(--)共七種。

二、 關係運算子:用於比較運算。包括大於(>)、小於(<)、等於(= =)、大於等於(>=)、小於等於(<=)和不等於(!=)六種。

三、 邏輯運算

符:用於邏輯運算。包括與(&&)、或(||)、非(!)三種。

四、 位操作運算子:參與運算的量,按二進位制

位進行運算。包括位與(&)and、位或(|)or、位非(~)not、位異或(^)xor、左移(<<)、右移(>>)六種。

五、 賦值運算子:用於賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算

賦值(&=,|=,^=,>>=,<<=)三類共十一種。

六、 條件

運算子:這是乙個三目運算子

,用於條件求值(?:)。

七、 逗號運算子:用於把若干表示式

組合成乙個表示式(,)。

八、 指標運算子:用於取內容(*)和取位址(&)二種運算。

九、 求位元組數運算子:用於計算資料型別

所佔的位元組數(sizeof)。

十、 特殊運算子:有括號

(),下標

,成員(→,.)等幾種。

優先順序

:c語言中,運算子的運算優先順序共分為15 級。1 級最高,15 級最低。 在表示式中,優先順序較高的先於優先順序較低的進行運算。而在乙個運算量兩側的運算子 優先順序相同時,則按運算子的結合性所規定的結合方向處理。

優先順序等級口訣

圓方括號、箭頭一句號, 自增自減非反負、針強位址長度,

乘除,加減,再移位,

小等大等、等等不等,

八位與,七位異,六位或,五與,四或,三疑,二賦,一真逗。

而在使用操作符時,不經意間就會忽略了至關重要的優先順序。下列就是優先順序順序:

基本表示式(primary expressions),主要是用於運算子之間,做為運算數。

標識,常量,字串文字量,優先順序提公升表示式最優先執行。

優先順序提公升表示式是指圓括號包圍的表示式,如「( expression )」

postfix-expression [ expression ],陣列下標運算。

postfix-expression ( argument-expression-list),函式呼叫,括號內的引數可選。

postfix-expression . identifier,成員訪問,

postfix-expression -> identifier,成員訪問,->號之前應為指標。

postfix-expression ++,字尾自增

postfix-expression --,字尾自減

( type-name )

( type-name ) 復合初始化,c99後新增。例如

int* a = (int) ;

//等價於

intunamed = ;//unamed表示乙個不可見的變數名。

int* a = unamed;

++ unary-expression 字首自增

-- unary-expression 字首自減

unary-operator cast-expression 單目轉型表式式, 包括 取位址& ,提領 * , 正號+ ,負號- 位反~ 邏輯否!。

sizeof unary-expression 求型別長度,對表示式求型別長度

sizeof ( type-name ) 求型別長度

( type-name ) cast-expression,強制表示式成為type-name指定的型別。

「 * 」 乘法運算子;「 / 」除法運算子;「 % 」 取餘運算子。

「 + 」加法運算子;「 - 」減法運算子。

<< 左移運算子;>> 右移運算子。

<、<=、>、>=關係運算子。

「 == 」等於運算子;「 != 」不等於運算子。

「 & 」按位與運算子

「 ∧ 」按位異或運算子(bitwise exclusive or operator)。

「 | 」按位或運算子(bitwise inclusive or operator)。

「&&」邏輯與運算子。

「 || 」邏輯或運算子。

? :條件運算子。

=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=賦值運算子。

「,」逗號運算子。

[pre]c 語言中,逗號(,)也可以是運算子,稱為逗號運算子(comma operator)。逗號運算子可以把兩個以上(包含兩個)的表示式連線成乙個表示式,稱為逗號表示式。其一般形式為:

子表示式1, 子表示式2, ..., 子表示式n

例如:a + b, c = b, c++

逗號運算子的優先順序是所有運算子中級別最低的,通常配合 for 迴圈使用。逗號表示式最右邊的子表示式的值即為逗號表示式的值。上例中,c++ 的值(c 自增之前的值)即為該表示式的值。

逗號運算子保證左邊的子表示式運算結束後才進行右邊的子表示式的運算。也就是說,逗號運算子是乙個序列點,其左邊所有***都結束後,才對其右邊的子表示式進行運算。因此,上例中,c 得到 b 的值後,才進行自增運算。

此外還可以參考著名資料進行學習

1.iso

.programming languages -- c

:iso/iec 9899,19992.king, k.n 著,呂秀鋒 譯.c語言程式設計:現代方法.北京:人民郵電出版社,2007,2009重印:33

你不知道的Python運算子

運算子用於執行程式 運算,會針對乙個以上運算元專案來進行運算。算術運算子 運算子描述 加法運算子 減法運算子 乘法運算子 除法運算子 模運算子,返回除法的餘數 冪運算子,返回x的y次冪 取整數運算子,返回商的整數部分 a 10b 4print a b print a b print a b prin...

你不知道的Python運算子?

運算子用於執行程式 運算,會針對乙個以上運算元專案來進行運算。算術運算子 運算子描述 a 10 b 4 print a b print a b print a b print a b 注意 除法返回的是乙個float型別資料 print a b print a b print a b 賦值運算子 運...

你所不知道的 const

const 常量是不可修改的,也就是說only read,例如 const int nbuffsize 512 nbuffsize 0 error就是因為const 常量不能修改,所以定義時必須初始化預設在全域性作用域中定義的非const變數可以在整個程式中訪問,例如 int ncounter ex...