1. 程式人生 > >c語言基礎文章

c語言基礎文章

C 環境設定
本地環境設定
如果您想要設定 C 語言環境,您需要確保電腦上有以下兩款可用的軟體,文字編輯器和 C 編譯器。
文字編輯器
這將用於輸入您的程式。文字編輯器包括 Windows Notepad、OS Edit command、Brief、Epsilon、EMACS 和 vim/vi。
文字編輯器的名稱和版本在不同的作業系統上可能會有所不同。例如,Notepad 通常用於 Windows 作業系統上,vim/vi 可用於 Windows 和 Linux/UNIX 作業系統上。
通過編輯器建立的檔案通常稱為原始檔,原始檔包含程式原始碼。C 程式的原始檔通常使用副檔名 “.c”。
在開始程式設計之前,請確保您有一個文字編輯器,且有足夠的經驗來編寫一個計算機程式,然後把它儲存在一個檔案中,編譯並執行它。
C 編譯器
寫在原始檔中的原始碼是人類可讀的源。它需要"編譯",轉為機器語言,這樣 CPU 可以按給定指令執行程式。
C 語言編譯器用於把原始碼編譯成最終的可執行程式。這裡假設您已經對程式語言編譯器有基本的瞭解了。
最常用的免費可用的編譯器是 GNU 的 C/C++ 編譯器,如果您使用的是 HP 或 Solaris,則可以使用各自作業系統上的編譯器。
以下部分將指導您如何在不同的作業系統上安裝 GNU 的 C/C++ 編譯器。這裡同時提到 C/C++,主要是因為 GNU 的 gcc 編譯器適合於 C 和 C++ 程式語言。
UNIX/Linux 上的安裝
如果您使用的是 Linux 或 UNIX,請在命令列使用下面的命令來檢查您的系統上是否安裝了 GCC:
$ gcc -v
如果您的計算機上已經安裝了 GNU 編譯器,則會顯示如下訊息:
Using built-in specs.Target: i386-redhat-linuxConfigured with: …/configure --prefix=/usr …Thread model: posix gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)
如果未安裝 GCC,那麼請按照

http://gcc.gnu.org/install/ 上的詳細說明安裝 GCC。
本教程是基於 Linux 編寫的,所有給定的例項都已在 Cent OS Linux 系統上編譯過。
Mac OS 上的安裝
如果您使用的是 Mac OS X,最快捷的獲取 GCC 的方法是從蘋果的網站上下載 Xcode 開發環境,並按照安裝說明進行安裝。一旦安裝上 Xcode,您就能使用 GNU 編譯器。
Xcode 目前可從 developer.apple.com/technologies/tools/ 上下載。
Windows 上的安裝
為了在 Windows 上安裝 GCC,您需要安裝 MinGW。為了安裝 MinGW,請訪問 MinGW 的主頁
www.mingw.org
,進入 MinGW 下載頁面,下載最新版本的 MinGW 安裝程式,命名格式為 MinGW-.exe。
當安裝 MinWG 時,您至少要安裝 gcc-core、gcc-g++、binutils 和 MinGW runtime,但是一般情況下都會安裝更多其他的項。
新增您安裝的 MinGW 的 bin 子目錄到您的 PATH 環境變數中,這樣您就可以在命令列中通過簡單的名稱來指定這些工具。
當完成安裝時,您可以從 Windows 命令列上執行 gcc、g++、ar、ranlib、dlltool 和其他一些 GNU 工具。
在我們學習 C 語言的基本構建塊之前,讓我們先來看看一個最小的 C 程式結構,在接下來的章節中可以以此作為參考。
C Hello World 例項
C 程式主要包括以下部分:
前處理器指令
函式
變數
語句 & 表示式
註釋
讓我們看一段簡單的程式碼,可以輸出單詞 “Hello World”:
例項
#include <stdio.h> int main(){ /* 我的第一個 C 程式 / printf(“Hello, World! \n”); return 0;}
接下來我們講解一下上面這段程式:
程式的第一行 #include <stdio.h> 是前處理器指令,告訴 C 編譯器在實際編譯之前要包含 stdio.h 檔案。
下一行 int main() 是主函式,程式從這裡開始執行。
下一行 /
/ 將會被編譯器忽略,這裡放置程式的註釋內容。它們被稱為程式的註釋。
下一行 printf(…) 是 C 中另一個可用的函式,會在螢幕上顯示訊息 “Hello, World!”。
下一行 return 0; 終止 main() 函式,並返回值 0。
編譯 & 執行 C 程式
接下來讓我們看看如何把原始碼儲存在一個檔案中,以及如何編譯並執行它。下面是簡單的步驟:
開啟一個文字編輯器,新增上述程式碼。
儲存檔案為 hello.c。
開啟命令提示符,進入到儲存檔案所在的目錄。
鍵入 gcc hello.c,輸入回車,編譯程式碼。
如果程式碼中沒有錯誤,命令提示符會跳到下一行,並生成 a.out 可執行檔案。
現在,鍵入 a.out 來執行程式。
您可以看到螢幕上顯示 “Hello World”。
$ gcc hello.c $ ./a.outHello, World!
C 變數
變數其實只不過是程式可操作的儲存區的名稱。C 中每個變數都有特定的型別,型別決定了變數儲存的大小和佈局,該範圍內的值都可以儲存在記憶體中,運算子可應用於變數上。
變數的名稱可以由字母、數字和下劃線字元組成。它必須以字母或下劃線開頭。大寫字母和小寫字母是不同的,因為 C 是大小寫敏感的。
C 語言也允許定義各種其他型別的變數,比如列舉、指標、陣列、結構、共用體等等,這將會在後續的章節中進行講解,本章節我們先講解基本變數型別。
C 中的變數定義
變數定義就是告訴編譯器在何處建立變數的儲存,以及如何建立變數的儲存。變數定義指定一個數據型別,幷包含了該型別的一個或多個變數的列表,如下所示:
type variable_list;
在這裡,type 必須是一個有效的 C 資料型別,可以是 char、w_char、int、float、double、bool 或任何使用者自定義的物件,variable_list 可以由一個或多個識別符號名稱組成,多個識別符號之間用逗號分隔。下面列出幾個有效的宣告:
int i, j, k;char c, ch;float f, salary;double d;
行 int i, j, k; 宣告並定義了變數 i、j 和 k,這指示編譯器建立型別為 int 的名為 i、j、k 的變數。
變數可以在宣告的時候被初始化(指定一個初始值)。初始化器由一個等號,後跟一個常量表達式組成,如下所示:
type variable_name = value;
下面列舉幾個例項:
extern int d = 3, f = 5; // d 和 f 的宣告與初始化int d = 3, f = 5; // 定義並初始化 d 和 fbyte z = 22; // 定義並初始化 zchar x = ‘x’; // 變數 x 的值為 ‘x’
不帶初始化的定義:帶有靜態儲存持續時間的變數會被隱式初始化為 NULL(所有位元組的值都是 0),其他所有變數的初始值是未定義的。
C 中的變數宣告
變數宣告向編譯器保證變數以指定的型別和名稱存在,這樣編譯器在不需要知道變數完整細節的情況下也能繼續進一步的編譯。變數宣告只在編譯時有它的意義,在程式連線時編譯器需要實際的變數宣告。
變數的宣告有兩種情況:
1、一種是需要建立儲存空間的。例如:int a 在宣告的時候就已經建立了儲存空間。
2、另一種是不需要建立儲存空間的,通過使用extern關鍵字宣告變數名而不定義它。 例如:extern int a 其中變數 a 可以在別的檔案中定義的。
除非有extern關鍵字,否則都是變數的定義。
extern int i; //宣告,不是定義int i; //宣告,也是定義
例項
嘗試下面的例項,其中,變數在頭部就已經被宣告,但是定義與初始化在主函式內:
例項
#include <stdio.h> // 變數宣告extern int a, b;extern int c;extern float f; int main (){ /
變數定義 / int a, b; int c; float f; / 初始化 */ a = 10; b = 20; c = a + b; printf(“value of c : %d \n”, c); f = 70.0/3.0; printf(“value of f : %f \n”, f); return 0;}
當上面的程式碼被編譯和執行時,它會產生下列結果:
value of c : 30value of f : 23.333334
C 中的左值(Lvalues)和右值(Rvalues)
C 中有兩種型別的表示式:
左值(lvalue):指向記憶體位置的表示式被稱為左值(lvalue)表示式。左值可以出現在賦值號的左邊或右邊。
右值(rvalue):術語右值(rvalue)指的是儲存在記憶體中某些地址的數值。右值是不能對其進行賦值的表示式,也就是說,右值可以出現在賦值號的右邊,但不能出現在賦值號的左邊。
變數是左值,因此可以出現在賦值號的左邊。數值型的字面值是右值,因此不能被賦值,不能出現在賦值號的左邊。下面是一個有效的語句:
int g = 20;
但是下面這個就不是一個有效的語句,會生成編譯時錯誤:
10 = 20;