C語言程式設計譚浩強版 五

2021-07-15 18:04:33 字數 2578 閱讀 1571



3.8 算術運算子和算術表示式

3.8.1 c運算子簡介

c語言的運算子可分為以下幾類:

1.、算術運算子:用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、

求餘(或稱模運算,%)、

自增(++)、自減(--)共七種。

2、關係運算子:用於比較運算。包括大於(>)、小於(<)、等於(==)、

大於等於(>=)、小於等於

(<=)和不等於(!=)六種。

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

4、位操作運算子:參與運算的量,按二進位制位進行運算。包括位與(&)、

位或(|)、位非(~)、

位異或(^)、左移(<<)、右移(>>)六種。

5、賦值運算子:用於賦值運算,分為簡單賦值(=)、復合算術賦值

(+=,-=,*=,/=,%=)和復合位運

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

6、條件運算子:這是乙個三目運算子,用於條件求值(?:)。

7、逗號運算子:用於把若干表示式組合成乙個表示式(,)。

9、求位元組數運算子:用於計算資料型別所佔的位元組數(sizeof)。

10、特殊運算子:有括號(),下標,成員(→,.)等幾種。

3.8.2 算術運算子和算術表示式

1、基本的算術運算子包括 +、-、*、/和%(求餘)

注意:1)、所有的算術運算中,只要有實數參與,結果都為double型,

因為計算時都按double型計算

2)、2個整型資料相除,結果為整數。採用向0取整法,捨去小數部分。

2、算術表示式和運算子的優先順序和結合性

表示式是由常量、變數、函式和運算子組合起來的式子。

運算子的結合性:

1)、左結合:算術運算子的結合性是自左至右,即先左後右。如有表示式

x-y+z則y應先與「-」號結合,

執行x-y運算,然後再執行+z的運算。

2)、右結合:最典型的右結合性運算子是賦值運算子。如x=y=z,由於「=」的右結

合性,應先執行y=z,

再執行x=(y=z)運算

3、強制型別轉換運算子

其一般形式為: (型別說明符) (表示式)

其功能是把表示式的運算結果強制轉換成型別說明符所表示的型別。

4. 自增、自減運算子

++i       i自增1後再參與其它運算。

--i         i自減1後再參與其它運算。

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

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

3.9 賦值運算子和賦值表示式

1、賦值運算子

簡單賦值運算子和表示式:簡單賦值運算子記為「=」。由「= 」連線的式子稱為賦值表示式。

功能是:計算表示式的值再賦予左邊的變數。賦值運算子具有右結合性。

例如:x=a+b

w=sin(a)+sin(b)

y=i+++--j

2、型別轉換

如果賦值運算子兩邊的資料型別不相同,系統將自動進行型別轉換,即把賦值號右邊的型別換成左邊的型別。

具體規定如下:

1) 、實型賦予整型,捨去小數部分。前面的例子已經說明了這種情況。

2) 、整型賦予實型,數值不變,但將以浮點形式存放,即增加小數部分

(小數部分的值為0)。

3) 、字元型賦予整型,由於字元型為乙個位元組,而整型為二個位元組,故將字元的

ascii碼值放到整型量

的低八位中,高八位為0。整型賦予字元型,只把低八

位賦予字元量。

我們用下面的例子來說明一下型別轉換的問題

#include/* 資料型別轉換 */

int main(void)

執行結果為:107,322.000000,107,b

3.、復合的賦值運算子

在賦值符「=」之前加上其它二目運算子可構成復合賦值符。如+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。

構成復合賦值表示式的一般形式為:

變數 雙目運算子 = 表示式

它等效於

變數 = 變數運算子 表示式

例如: a += 5 等價於a = a + 5

x *= y + 7 等價於x = x * (y + 7)

r %= p 等價於r = r % p

3.10 逗號運算子和逗號表示式

在c語言中逗號「,」也是一種運算子,稱為逗號運算子。其功能是把兩個表示式連線起來組成乙個表示式,

稱為逗號表示式。

其一般形式為: 表示式1,表示式2

其求值過程是分別求兩個表示式的值,並以表示式2的值作為整個逗號表示式的值。

下面我們來舉個例子:

#include/* 逗號運算子和逗號表示式 */

int main(void)

執行結果為:y = 6,x = 6 

C語言程式設計譚浩強版 一

本章的一些概況這裡就不說了,直接進入細節的學習!3.1 c的資料型別 資料型別分為 基本型別 構造型別 指標型別 空型別 基本型別又分為 整型 字元型 實型 浮點型 又分為單精度型 雙精度型 列舉型別 構造型別又分為 陣列型別 結構體型別 共用體型別 3.2 常量和符號常量 在程式執行過程中,其值不...

C語言程式設計譚浩強版 三

3.5 字元型資料 3.5.1 字元常量 字元常量是用單引號括起來的乙個字元。例如 a b 都是合法字元常量。在 語言中,字元常量有以下特點 1 字元常量只能用單引號括起來,不能用雙引號或其它括號。2 字元常量只能是單個字元,不能是字串。3 字元可以是字符集中任意字元。但數字被定義為字元型之後就不能...

C語言程式設計譚浩強版 四

3.6 變數賦初值 語言程式中可有多種方法為變數提供初值。本小節先介紹在作變數定義的同時給變數賦以 初值的方法。這種方法稱為初始化。變數初始化不是在編譯階段完成的,而是在程式執行 時執行本函式時賦予初值的。在變數定義中賦初值的一般形式為 型別說明符變數1 值1,變數2 值2,例如 int a 3 i...