C語言基本概念
1. 第一個C語言程序
??在經(jīng)典的C語言著作The C Programming Language中的第一個入門級代碼猖辫,也是很多編程語言的入門級代碼Hello World!
??執(zhí)行上述的代碼酥泞,可以在控制臺輸出 HelloWorld ,修改其內(nèi)容啃憎,可以得到相應(yīng)的輸出芝囤,下面簡單的解釋下上述每一行代碼的含義。
#include <stdio.h>:是必不可少的辛萍,它“包含”了C語言標準輸入/輸出庫的相關(guān)信息悯姊。功能是進行有關(guān)的預(yù)處理操作。
int main(void) :程序的執(zhí)行入口贩毕,并且一個程序中有且僅有一個main函數(shù)悯许,void可以省略不寫。int 是關(guān)鍵字辉阶,表示整型先壕,在后面的筆記中會對其進行詳細的介紹瘩扼。
printf("HelloWorld");: 函數(shù)的執(zhí)行輸出語句(先記住,不用搞懂為什么這樣寫垃僚,不要鉆牛角尖集绰,隨著后面的學(xué)習就會知道)。
return 0;:使得main函數(shù)終止運行谆棺,并向操作系統(tǒng)返回一個整型常量0栽燕。
注意:現(xiàn)在先不用明白為什么代碼是這樣寫,為什么輸出是這樣包券,先不用搞懂纫谅,了解就行(入門時非要搞懂就類似于:對著一張桌子問別人,為什么這個叫做桌子溅固?讓人無法回答付秕,隨著后面的學(xué)習,我們慢慢的就會知道這樣寫的含義了)侍郭。
2. 簡單程序的一般形式
??回顧上面的程序询吴,可以得到一個c語言程序的通用格式,如下
指令
int main(void){
?? 語句亮元;
}
??所有復(fù)雜的c語言程序都是對這個格式的一種擴展猛计,慢慢的學(xué)習下去就會知道這句話的含義了。
即使最簡單的C程序依賴3個關(guān)鍵的語言特性:指令(在編譯前修改程序的編輯命令)爆捞,函數(shù)(被命名的可執(zhí)行代碼塊奉瘤,如main函數(shù))和語句(程序運行時執(zhí)行的命令)。
2.1 指令
??在編譯c程序之前煮甥,預(yù)處理器會首先對其進行編輯盗温。我們把預(yù)處理器執(zhí)行的命令稱為指令。
2.2 函數(shù)
??函數(shù)類似于其他編程語言中的“過程”和“子例程”成肘,它們是用來構(gòu)建程序的構(gòu)建塊卖局。函數(shù)分為兩大類:一類是程序員編寫的函數(shù),另一類是作為 c語言實現(xiàn)的一部分提供的函數(shù)(也就是庫函數(shù))
2.3 語句
??語句是程序運行時執(zhí)行的命令双霍,規(guī)定每條語句以分號結(jié)束(注意中英文分號的區(qū)別)砚偶。
3. 注釋
??注釋是對代碼的一種補充說明,方便日后自己和他人的閱讀洒闸。
一般為: /* 這是一條注釋 */ 可以跨越多行
??但是在C99特性中增加了: //這是一條注釋 作用范圍為一行
4 變量和賦值
??在第一式中染坯,進行了HelloWorld程序的輸出與打印,并且總結(jié)了公式丘逸,但現(xiàn)實中的C語言程序絕對不可能如此簡單酒请,大多數(shù)的程序在輸出之前都會進行一系列的計算,因此需要在程序執(zhí)行結(jié)束前將每一步執(zhí)行過程中的數(shù)據(jù)進行一種臨時的存儲鸣个。C語言中將這類存儲單元被稱為變量羞反。
4.1 類型
??每一個變量都必須有一個類型布朦。類型用來說明變量所存儲的數(shù)據(jù)的種類。在C語言中有很多類型昼窗,不同的類型會影響變量的存儲方式以及允許對變量進行的操作是趴,因此選擇合適的類型顯得非常的重要。在第二式中只是限定兩種類型:int類型和float類型澄惊。
int(ingteger的縮寫)型變量可以存儲整數(shù)唆途,如0,1,392和-2553。最大整數(shù)為2147483647掸驱,但是在有些電腦上可能只有32767肛搬,區(qū)別在于電腦是32位和64位。
??float(floating-point的簡寫)型變量可以存儲比int型變量大得多的數(shù)量毕贼,并可以存儲小數(shù)温赔,如379.125。但是在進行計算時鬼癣,float型比int型速度慢陶贼,更為重要的是,float變量所存儲的數(shù)值往往是實際數(shù)值的一個近似值待秃。如float型變量中存儲0.1拜秧,以后可能發(fā)現(xiàn)變量的值為0.9999999999999987,這個是舍入造成的誤差章郁。
4.2 聲明
??在使用變量之前必須對其進行聲明(就是告訴編譯器這個是啥枉氮,是做什么的,電腦其實很笨暖庄,你寫代碼讓他干啥聊替,他才能做啥)。為了聲明變量雄驹,首先需要指定變量的類型,然后說明變量的名字(名字是由程序員決定的淹辞,這個名字有講究医舆,下面會進行講解),例如:
int height; 或 int height,length,width;(這種寫法必須是同一個類型的)
float profit;
聲明必須放在使用之前象缀。
int main(void){
??聲明蔬将;
??語句;
}
4.3 賦值
??變量通過賦值的方式獲取值央星,例如:
??height = 8;
??length = 12;
??height和length稱為變量,8,12稱為常量。變量在賦值或以其他方式使用之前必須先聲明揩局。
1)錯誤
??height = 8;
??int height;
2)正確
??int length;
??length = 8;
上述兩條語句可以合并起來,寫作:int length = 8;
??上面主要寫了int類型廉沮,下面談?wù)刦loat型。
??float類型的常量通常是帶有小數(shù)點的徐矩,并且最好在數(shù)據(jù)的后面加上f滞时,否則在有些編譯器中可能會引發(fā)警告。注意事項同int型滤灯。
1)錯誤
??profit = 8.02f;
??int profit;
2)正確
??int profit;
??profit = 8.02f;
上述兩條語句可以合并起來坪稽,寫作:float profit = 8.02f;
4.4 顯示值
??用printf可以顯示出變量的當前值(后面會針對printf和scanf進行詳細的介紹)。
printf("Height: %d\n",height); %d僅用于顯示int型變量鳞骤。
printf("Profit: %.2f\n",profit); %f僅用于顯示float型變量窒百,默認顯示出小數(shù)點后6位數(shù)字,要強制%f顯示小數(shù)點后p位數(shù)字豫尽,可以把p放置在%和f之間篙梢。