#include <stdio.h> int main(void) { int month, day, hour, min; char *name; month = 7; day = 27; hour = 9; min = 45; name = "kaiching"; printf("\n\n今天是 %d 月 %d 日\n", month, day); printf("現在是上午 %d:%d\n", hour, min); printf("哈囉, %s!\n\n", name); return 0; } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:csimple.c 功能:簡單顯示訊息的例子 作者:張凱慶 時間:西元2010年7月 */
我們把注意力放到函數定義區中的變數 (variable) 宣告,下圖中程式碼的第 5 行及第 6 行
程式中的變數與數學使用的變數相似,都是用某些符號或單字代替某些數值,從而得以方便計算過程。程式語言中的變數屬於識別字 (identifier) , C 語言對於識別字有一定的命名規則,例如只能用英文大小寫字母、數字以及底線符號
_ | ||||||||||||
a | b | c | d | e | f | g | h | i | j | k | l | m |
n | o | p | q | r | s | t | u | v | w | x | y | z |
A | B | C | D | E | F | G | H | I | J | K | L | M |
N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
其中,數字不能用作識別字的開頭,單一識別字裡不允許有空格,而如 int 、 char 為 C 語言的關鍵字 (keyword) 之一,屬於程式語言的語法保留字,因此也不能用為自行定義的名稱。通常編譯器至少能讀取名稱的前 31 個字元,但外部名稱可能只能保證前六個字元有效。
C 語言的關鍵字有 34 個,如下列表
auto | else | long | switch |
break | enum | register | typedef |
case | extern | restrict | union |
char | float | return | unsigned |
const | for | short | void |
continue | goto | signed | volatile |
default | if | sizeof | while |
do | inline | static | |
double | int | struct |
變數使用前要先進行宣告 (declaration) ,宣告的主要目的是告訴編譯器這個變數屬於哪一種資料型態,好讓編譯器預先替該變數保留足夠的記憶體空間。宣告的方式很簡單,就是型態名稱後面接空格,然後是變數的識別名稱
char a; //變數 a 為字元型態 short b; //變數 b 為短整數型態 int c; //變數 c 為整數型態 long d; //變數 d 為長整數型態 long long e; //變數 e 為 long long 型態 float f; //變數 f 為浮點數型態 double g; //變數 g 為倍準浮點數型態 long double h; //變數 h 為 long double 型態
C 語言的基本資料型態可分為三大類,分別是字元 (character) 、整數 (integer) 及浮點數 (floating-point number) ,有八種,使用六個關鍵字,如下列表
識別字 | 種類 | 佔用位元數 | 範圍 |
---|---|---|---|
char | 字元 | 8 | |
short | 整數 | 16 | -32768 to 32767 |
int | 整數 | 16 或 32 ,實際視機器而定 | 實際視機器而定 |
long | 整數 | 32 | −2,147,483,648 to 2,147,483,647 |
long long | 整數 | 64 | 實際視機器而定 |
float | 浮點數 | 32 | |
double | 浮點數 | 64 | |
long double | 浮點數 | 128 |
除了字元型態,整數及浮點數都有數種,主要由於不同型態佔用的記憶體空間不同,因此不同整數或浮點數型態可儲存的最大或最小值也有所不同,這樣一來,妥善規劃程式所用的資料型態可以更有效的利用記憶體空間。
宣告相同型態的多個變數也可以寫在同一列,例如簡單例子中的第 5 行
int month, day, hour, min;
第 6 行
char *name;
這是宣告字元型態的指標 (pointer) 變數,所謂的指標是 C 語言的衍生資料型態之一,用來存放指向某個變數或數值的記憶體位址。宣告指標變數,需要在變數名稱前加上星號 * 。
問題與討論
- 請簡述 C 語言的變數命名規則。
- C 語言的關鍵字可以分成哪幾類呢?
- 為什麼變數使用前要先進行宣告?宣告的目的是什麼?
- 請簡述 C 語言基本資料型態的種類。
- 指標變數的用途是什麼?
- 除了基本資料型態外, C 語言還有其他的資料型態嗎?
沒有留言:
張貼留言