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...