#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 語言還有其他的資料型態嗎?
沒有留言:
張貼留言