1. C語言概述
1.1 C語言功能
a. 運作效率高,現在已經代替了彙編語言。
b. 程式設計效果和進階語言基本一緻(JAVA)。
c. 代碼量小,速度快,功能強大。
d. C語言是最廣泛使用的系統程式設計語言。
1.2 編譯
編譯(Compile):編譯器識别代碼中的詞彙、句子以及各種特定的格式,并将他們轉換成計算機能夠識别的二進制形式的過程。
C程式編寫完成後,首先通過編譯轉換成目标檔案,然後通過C語言函數庫連接配接建立可執行程式,最後才可以執行該程式。
檔案類型 | 解釋 | 表示形式 |
源檔案 | 使用者建立檔案 | .c |
目标檔案 | 編譯器的輸出結果 | .o 或者 .obj |
頭檔案 | 含有函數聲明和預處理語句,用于幫助通路外部定義的函數。 | .h |
可執行檔案 | 連接配接器的輸出結果。 | .exe |
IDE(Integrated Development Environment,內建開發環境)。
2. C語言結構和文法
2.1 Hello world執行個體
#include<stdio.h> // 以#開始的語句叫做預處理指令,告訴編譯器在編譯前要包含的頭檔案。stdio.h包含輸入輸出語句相關函數。
int main() //主函數,程式執行的入口。mian()函數可以傳回傳回值也可以不傳回,如果不傳回的話使用關鍵詞void。
{
printf(“Hello world!\n”); //列印函數,在螢幕上顯示消息,并換行(\n)。
return 0; //終止main函數,并傳回值0。
}
scanf():從标準輸入讀取資訊函數 &用于指明在記憶體中的位置。
printf():标準輸出函數
舉例: double sum=168.1790021 printf(“%7.2f”,sum); 輸出結果為: _ 168.18 .2 為小數點後的位數,7為總位數![]()
C語言入門程式設計學習———文法與語句
2.2 C資料類型
基本類型:算術類型,包括兩種類型:整數類型和浮點類型。 枚舉類型:算術類型,被用來定義在程式中隻能賦予其一定的離散整數值的變量。 void 類型:類型說明符 void 表明沒有可用的值。 派生類型:包括:指針類型、數組類型、結構類型、共用體類型和函數類型。
2.3 常量與變量
(1) 變量的名稱可以由字母、數字和下劃線字元組成。但必須以字母或下劃線開頭,C語言區分大小寫,是以變量price與變量PRICE是兩個不同的變量。
(2) 常量是固定值,可以是任何的基本資料類型,常量的值在定義後不能進行修改。
(3) 全局變量和局部變量
全局變量
定義所有函數外部;從定義的時候開始配置設定空間,到整個代碼執行結束,空間就被釋放;作用域:從變量定義位置以下,所有函數都能使用和修改;初始值:預設為0;
局部變量
定義在函數内部或者複合語句中;從局部變量所在的函數被調用,才會為其配置設定空間;作用域:隻能用于變量所在函數的内部或者複合語句中;初始值:預設為随機數;
注意:全局變量與局部變量重名,會怎麼樣?
采取就近原則,局部變量所在的函數内部,會優先選擇使用局部變量;
2.4 形參與實參
1) 形參隻在函數被調用時才會配置設定記憶體,調用結束後,立刻釋放記憶體,隻有在函數内部使用有效。
2) 實參可以是常量、變量、表達式、函數等類型的資料,在進行函數調用時,必須有确定的值,以便把這些值傳送給形參,應提前用指派、輸入等辦法使實參獲得确定值。
3) 實參和形參在數量、類型、順序上必須嚴格一緻,否則會發生“類型不比對”。函數調用中發生的資料傳送是單向的,隻能把實參的值傳送給形參,而不能把形參的值反向傳送給實參。 是以在函數調用過程,形參的值發生改變,而實參中的值不會變化。
2.5 存儲類型關鍵字
(1) auto關鍵字
auto關鍵字是所有局部變量預設的存儲類。隻能用在函數内,隻能修飾局部變量。
(2) register關鍵字
register關鍵字用于定義存儲在寄存器中而不是RAM中的局部變量。寄存器隻用于需要快速通路的變量。
(3) static關鍵字
static關鍵字訓示編譯器在程式的生命周期内保持局部變量的存在,而不需要在每次它進入和離開作用域時進行建立和銷毀。 是以,使用static修飾局部變量可以在函數調用之間保持局部變量的值。當static修飾全局變量時,會使變量的作用域限制在聲明它的檔案内。
(4) extern關鍵字
extern用于提供一個全局變量的引用,全局變量對所有的程式檔案都是可見的。extern是用來在另一個檔案中聲明一個全局變量或函數。即适用于兩個檔案以上。
2.6 C運算符
運算符是一種告訴編譯器執行特定的數學或邏輯操作的符号。
算術運算符: + - * / % ++ --
關系運算符: == != > < >== <==
邏輯運算符: && || !
位運算符 : & | ^ ~ << >>
指派運算符: = += -= *= /=
雜項運算符: sizeof() 傳回變量值 & 傳回位址 * 指向變量 ?: 條件表達式
3. 語句
1. if語句
#include <stdio.h>
int main()
{
int a, b, max;
}printf("輸入兩個整數: ");
scanf("%d %d", &a, &b);
if(a>b) max=a;
else max=b;
printf("%d 和%d 的較大值是: %d\n", a, b, max);
return 0;
2. switch語句
一個 switch 語句允許測試一個變量等于多個值時的情況。每個值稱為一個 case,且被測試的變量會對每個switch case 進行檢查。
3. while循環
#include <stdio.h>
int main()
{
int i=1, sum=0;
while(i<=100)
{
sum+=i;
i++;
}
printf("%d\n",sum);
return 0;
}
4. for循環
#include <stdio.h>
int main()
{
int i=1, sum=0;
while(i<=100)
{
sum+=i;i++;}}
printf("%d\n",sum);
return 0;
5. do while循環
#include <stdio.h>
int main ()
{
int a = 10;
do{
printf("a 的值: %d\n", a);
a = a + 1;
}while( a < 20 );
return 0;
}
6. 循環控制語句
break語句 終止循環或 switch 語句,程式流将繼續執行緊接着循環或 switch 的下一條語句. continue語句 告訴一個循環體立刻停止本次循環疊代,重新開始下次循環疊代。 goto語句 将控制轉移到被标記的語句。但是不建議在程式中使用 goto 語句。