C語言運算子

2021-10-03 11:01:38 字數 3191 閱讀 3413

c語言有六種運算子,如下:

1)算術運算子;

2)賦值運算子;

3)sizeof運算子;

4)關係運算子;

5)邏輯運算子;

6)位運算子。

本章將只介紹算術運算子、賦值運算子和sizeof運算子,關係運算子和邏輯運算子放在其它章節中介紹,位運算子極少使用,了解即可,不深入學習。

下表顯示了 c 語言支援的所有算術運算子。假設變數 a 的值為 18,變數 b 的值為5,則:

運算子描述例項

+兩個數相加

a+b 將得到 23

-乙個數減另乙個數

a-b 將得到 13

*兩個數相乘

a*b 將得到 90

/分子除以分母

a/b 將得到 3.6

%餘數運算子,整除後的餘數

b%a 將得到 3

++自增運算子,整數值增加 1

a++ 將得到 19

自減運算子,整數值減少 1

a-- 將得到 17

示例(book15.c)

/*

* 程式名:book15.c,此程式演示算術運算子的使用。

*/#include

intmain()

執行效果

變數的自增或自減有兩種寫法:

變數名++; // 表示在本次使用變數後再自增;

++變數名; // 表示在本次使用變數前自增;

變數名–; // 表示在本次使用變數後再自增;

–變數名; // 表示在本次使用變數前自減;

示例(book16.c)

/*

* 程式名:book16.c,此程式演示算術運算子++和--的使用。

*/#include

intmain()

執行效果下表列出了 c 語言支援的賦值運算子:

運算子描述例項

=簡單的賦值運算子,把右邊運算元的值賦給左邊運算元

c = a + b 將把 a + b 的值賦給 c

+=加且賦值運算子,把右邊運算元加上左邊運算元的結果賦值給左邊運算元

c += a 相當於 c = c + a

-=減且賦值運算子,把左邊運算元減去右邊運算元的結果賦值給左邊運算元

c -= a 相當於 c = c - a

*=乘且賦值運算子,把右邊運算元乘以左邊運算元的結果賦值給左邊運算元

c *= a 相當於 c = c * a

/=除且賦值運算子,把左邊運算元除以右邊運算元的結果賦值給左邊運算元

c /= a 相當於 c = c / a

%=求餘數且賦值運算子,求兩個運算元的模賦值給左邊運算元,浮點數不適用取餘數。

c %= a 相當於 c = c % a

賦值運算子支援的是c語言的基本資料型別,包括char、int和double,字串(字元陣列)不能使用賦值運算子。

示例(book17.c)

/*

* 程式名:book17.c,此程式演示賦值運算子的使用。

*/#include

intmain()

執行效果

sizeof是c語言的關鍵字,它用來計算變數(或資料型別)在當前系統中占用記憶體的位元組數。

sizeof不是函式,產生這樣的疑問是因為sizeof的書寫確實有點像函式,sizeof有兩種寫法:

用於資料型別

sizeof

(資料型別)

;

資料型別必須用括號括住。

printf

("字元型變數占用的記憶體是=%d\n"

,sizeof

(char))

;// 輸出:字元型變數占用的記憶體是=1

printf

("整型變數占用的記憶體是=%d\n"

,sizeof

(int))

;// 輸出:整型變數占用的記憶體是=4

用於變數

sizeof

(變數名)

;sizeof 變數名;

變數名可以不用括號括住,帶括號的用法更普遍,大多數程式設計師採用這種形式。

int ii;

printf

("ii占用的記憶體是=%d\n"

,sizeof

(ii));

// 輸出:ii占用的記憶體是=4

printf

("ii占用的記憶體是=%d\n"

,sizeof ii)

;// 輸出:ii占用的記憶體是=4

在±*/四則運算符中,*/的優先順序高於±,在c語言中,其它的運算子都有優先順序,我不想介紹它們的優先順序,我寫了二十年的程式,也記不住各種運算子的優先順序的關係。

我不建議程式設計師記住各種運算子的優先順序,而是用括號解決全部的問題,括號的優先順序是最高的,括號中的表示式會優先執行,這樣各個運算子的執行順序就一目了然了。

int d = a +

(b * c)

;

C語言 運算子與 運算子

我們平時使用帶參巨集時,字串中的巨集引數是沒有被替換的。例如 輸出結果為 然而,我們期望輸出的結果是 5 20 2513 14 27 這該怎麼做呢?其實,c語言允許在字串中包含巨集引數。在類函式巨集 帶參巨集 中,號作為乙個預處理運算子,可以把記號轉換成字串。例如,如果a是乙個巨集形參,那麼 a就是...

C語言 運算子和 運算子

變數 代表 取變數的位址 變數 代表 指標型的變數 取址運算子 用來取得其運算元的位址。如果運算元 x 的型別為 t,則表示式 x 的型別是 t 型別指標 指向 t 的指標 取址運算子的運算元必須是在記憶體中可定址到的位址。換句話說,該運算子只能用於函式或物件 例如左值 而不可以用於位欄位,以及那些...

C語言運算子

1級優先順序左結合 圓括號 下標運算子 指向結構體成員運算子 結構體成員運算子 字尾增量運算子 字尾增量運算子 2級優先順序右結合 邏輯非運算子 按位取反運算子 字首增量運算子 字首增量運算子 負號運算子 型別 型別轉換運算子 指標運算子 位址與運算子 sizeof 長度運算子 3級優先順序左結合 ...