C語言的基本資料型態&運算式
|
類別 |
符號位元 |
位元長 |
表示法 |
數值範圍 |
|
整數 |
有 |
16 |
int (short) |
-32768~32767 |
|
32 |
long |
-2147483648~2147483647 |
||
|
無 |
16 |
unsigned int |
0~65535 |
|
|
16 |
unsigned short |
0~65535 |
||
|
32 |
unsigned long |
0~4294967295 |
||
|
浮點數 |
有 |
32 |
float |
10^-38~10^38 |
|
64 |
double |
10^-308~10^308 |
||
|
字元 |
無 |
8 |
char |
0~255 |
C語言的算術運算有加、減、除、取餘數,這些運算皆需要兩個運算元。
算術運算子
|
運算子
|
功能
|
例子
|
|
+
|
加
|
a+b;
|
|
-
|
減
|
a-b;
|
|
*
|
乘
|
a*b;
|
|
/
|
除
|
a/b;
|
|
%
|
取餘數
|
a&b;
|
C語言的遞增與遞減的功能類似算術運算,但只能應用在單一運算元上,也限制於加一減一。
遞增以及遞減運算子
|
運算子
|
功能
|
例子
|
|
++
|
b=a++;(先執行b=a,在執行+1)
|
a++;
|
|
++
|
b=++a;(先執行a+1,在存入b)
|
++a;
|
|
--
|
b=a--;(先執行b=a,在執行-1)
|
a--;
|
|
--
|
b=--a;(先執行a-1,在存入b)
|
--a;
|
C語言的關係運算子包含小於、小於等於、大於、大於等於,另外有兩個測試相等性的運算子,皆需要兩個運算來構成運算式,運算結果會以0表示假,1表示真。
關係運算子
|
運算子
|
功能
|
例子
|
|
<
|
小於
|
a<b;
|
|
<=
|
小於等於
|
a<=b;
|
|
>
|
大於
|
a>b;
|
|
>=
|
大於等於
|
a>=b;
|
|
==
|
相等
|
a==b;
|
|
!=
|
不等
|
a!=b;
|
C語言的邏輯運算子包含邏輯NOT、AND、OR,都需要兩個運算元。
邏輯運算子
|
運算子
|
功能
|
例子
|
|
!
|
邏輯閘NOT
|
!a
|
|
&&
|
邏輯閘AND
|
a&&b
|
|
||
|
邏輯閘OR
|
a||b
|
位元運算子把他們的運算元視為一組位元的集合(零或一),而非十進制十六進制、八進制。例如,十進制數 9 的二進制表示法為 1001。位元運算子對這些二進制表示法進行運算。
位元運算子
|
運算子
|
功能
|
例子
|
|
&
|
位元AND,每一個對應至同一位元位置的兩個運算元兩者為 1 時,返回 1
|
a&b
|
|
|
|
位元OR,每一個對應至同一位元位置的兩個運算元兩者或其中一者為 1 時,返回 1
|
a|b
|
|
^
|
位元XOR,每一個對應至同一位元位置的兩個運算元其中一者而非兩者為 1 時,返回 1
|
a^b
|
|
<<
|
往左移動 a 的二進制表示法 b 位元,從右邊補 0
|
a<<b
|
|
>>
|
往右移動 a 的二進制表示法 b 位元,丟棄移出的位元
|
a>>b
|
|
~
|
位元NOT,反轉運算元的位元,取 1 的補數
|
~a
|
C 語言的 cast 運算子的用途作為強迫轉型
Cast運算子
| 運算子 | 功能 | 例子 |
(type) operand |
這樣子operand 會被強迫轉換型態為小括弧中的 type |
int a = 34;int b = 8;float c, d; d = a / b;c = (float) a / b; |
C 語言的 sizeof 運算子的用來計算資料所佔用的位元組數
Sizeof運算子
|
運算子
|
功能
|
例子
|
sizeof() |
sizeof 運算子用來計算資料所佔用的位元組數。
|
printf("%11s%4d\n", "char", sizeof(char)); |
C 語言最基本的指派運算子為單一個等號 = ,這是用來將等號右邊的值拷貝給給左邊的變數資料。等號也可以跟其他運算子合用,會直接將結果儲存到原變數之中
指派運算子
|
運算子
|
功能
|
例子
|
|
=
|
指派
|
a=b
|
|
+=
|
相加同時指派
|
a+=b
|
|
-=
|
相減同時指派
|
a-=b
|
|
*=
|
相乘同時指派
|
a*=b
|
|
/=
|
相除同時指派
|
a/=b
|
|
%=
|
取餘數同時指派
|
a%=b
|
|
&=
|
位元AND同時指派
|
a&=b
|
|
|=
|
位元OR同時指派
|
a|=b
|
|
^=
|
位元XOR同時指派
|
a^=b
|
|
<<=
|
位元向左位移同時指派
|
a<<=b
|
|
>>=
|
位元向右位移同時指派
|
a>>=b
|
條件運算子是 C 語言裡唯一的三元運算子 ?: ,需要三個運算元,三個運算元都可為運算式
條件運算子
| 運算子 | 功能 | 例子 |
expr 1? expr 2: expr3 |
若 expr1 為真,運算結果會是 expr2 的值,若為假,運算結果則是 expr3 的值。 條件運算子通常利用在需要二選一的情況下,例如比較兩個整數取較大的值。 |
int a = 22;int b = 34; printf("a = %d\n", a);printf("b = %d\n", b);printf("%d 較大\n", a > b ? a : b); |
(type) operand
expr 1? expr 2: expr3
請先 登入 以發表留言。