1. 在C語言裡,所有的資料均有其對應的資料型態。其中基本資料型態如下:
(下表資料與編譯軟體有關,以下為 MINGW32-GNU GCC on WinXP 之參考數值)
資料型態 |
宣告方式 |
資料長度 |
資料範圍 |
說明/有效位數 |
字元 |
char |
1 byte |
-27~27-1 相當於 -128~127 |
|
整數 |
short int |
2 bytes |
-215~215-1 相當於 -32,768~32,767 |
|
int |
4 bytes |
-231~231-1 相當於 -2,147,483,648~2,147,483,647 |
|
long int |
4 bytes |
-231~231-1 相當於 -2,147,483,648~2,147,483,647 |
|
long long int |
8 bytes |
-263~263-1 相當於 -9,223,372,036,854,775,808LL~9,223,372,036,854,775,807LL |
|
浮點數(小數) |
float |
4 bytes |
3.4E-38~3.4E+38 |
6位數 |
double |
8 bytes |
1.7E-308~1.7E+308 |
15位數 |
long double |
12 bytes |
E-4931~E+4932 |
18位數 |
2. 變數
2.1 在程式中我們常會需要利用變數來代表某些資料或數值,利如金額可用money,平均可用average等,在對變數命名時需儘量盡量選擇有意義且易嘹解的名稱,而不要因貪一時方便用類似a,b,x,y等名稱,否則不僅別人看不懂,連程式作者也可能在一段時間後忘了變數代表的意義
2.2 C語言變數命名的規定:第一個字元必需是英文字母或底線(_),之後可用數字、英文字母或底線(_),但是不可以用保留字。
例:num 合法
_money 合法
sum4 合法
3score 不合法,第一個字不可為數字
main 不合法,不可為保留字
2.3 變數宣告:變數在使用之前要經過宣告的程序,如下
syntax:資料型態 變數名稱[=初始值]
eg:
int no;
int money=100,sum=0;
char sex='M'; //留意!字元要用單引號括住
|
3.有號數(signed)與無號數(unsigned)
若無特別宣告,則基本上所有上述資料型態皆可儲存有號數,亦即可記錄正、負數。若只處理正數時,可在宣告變數時在前面加上unsigned(其資料範圍會變大)。
例:
unsigned short int count; //count記錄範圍為0~65535 |
4.溢位(overflow)及缺位(underflow)
當變數儲存的資料超過其上限時稱為「溢位」,超過下限時稱為「缺位」。
例:
short int x=32768,y=-32769; //錯誤!x為溢位錯誤,y為缺位錯誤。 |
5.常數宣告
若我們希望變數不因程式執行而改變,可將其宣告為常數。其宣告方式為在資料型態前加const即可
例:
6.字串(String)及陣列(Array)
字串及陣列可以儲存連續的字元或數字,例如人名,全班成績等資料。
例:
//字串需用雙引號" "括住
char name[20]="Avatar";
//數字陣列用大括號{ }括住,中間用逗號隔開‧
int score[5]={99,100,50,70,80};
|
7.自訂資料型態:
有時後如果遇到較複雜的資料,可利用自訂資料型態的功能。請參考struct(結構)和enum(列舉)的用法。
struct book{
char title[20]; //書名
char author[10]; //作者
int value; //價格
}
enum color {red,green,blue,white,black}; //顏色:紅綠藍白黑
|
8.試試看:
8.1 請問以下資料適用於何種資料型態?並請舉例
a.目前全世界的人口數量 b.一部DVD電影的價格 c.撲克牌的點數
d.某銀行的定存利率 e.圓周率(精確到小數點第10位) g.某國國名
8.2 請問以下資料適用於何種資料型態?
a.1024 b.'x' c.'\n' d.2.54 e.1234567890
f.1.23E+20 g.1.5E-100 h."I love programming!"
8.3 請從鍵盤輸入以上資料,並從螢幕輸出。(利用scanf()及printf())