函數(shù)是一組一起執(zhí)行一個(gè)任務(wù)的語句。每個(gè) C 程序都至少有一個(gè)函數(shù),即主函數(shù) main() ,所有簡(jiǎn)單的程序都可以定義其他額外的函數(shù)。
創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司是一家服務(wù)多年做網(wǎng)站建設(shè)策劃設(shè)計(jì)制作的公司,為廣大用戶提供了網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì),成都網(wǎng)站設(shè)計(jì),1元廣告,成都做網(wǎng)站選創(chuàng)新互聯(lián),貼合企業(yè)需求,高性價(jià)比,滿足客戶不同層次的需求一站式服務(wù)歡迎致電。
您可以把代碼劃分到不同的函數(shù)中。如何劃分代碼到不同的函數(shù)中是由您來決定的,但在邏輯上,劃分通常是根據(jù)每個(gè)函數(shù)執(zhí)行一個(gè)特定的任務(wù)來進(jìn)行的。
C 標(biāo)準(zhǔn)庫(kù)提供了大量的程序可以調(diào)用的內(nèi)置函數(shù)。例如,函數(shù) strcat() 用來連接兩個(gè)字符串,函數(shù) memcpy() 用來復(fù)制內(nèi)存到另一個(gè)位置。
函數(shù)還有很多叫法,比如方法、子例程或程序,等等。
C 語言中的函數(shù)定義的一般形式如下:
在 C 語言中,函數(shù)由一個(gè)函數(shù)頭和一個(gè)函數(shù)主體組成。下面列出一個(gè)函數(shù)的所有組成部分:
以下是 max() 函數(shù)的源代碼。該函數(shù)有兩個(gè)參數(shù) num1 和 num2,會(huì)返回這兩個(gè)數(shù)中較大的那個(gè)數(shù):
創(chuàng)建 C 函數(shù)時(shí),會(huì)定義函數(shù)做什么,然后通過調(diào)用函數(shù)來完成已定義的任務(wù)。
當(dāng)程序調(diào)用函數(shù)時(shí),程序控制權(quán)會(huì)轉(zhuǎn)移給被調(diào)用的函數(shù)。被調(diào)用的函數(shù)執(zhí)行已定義的任務(wù),當(dāng)函數(shù)的返回語句被執(zhí)行時(shí),或到達(dá)函數(shù)的結(jié)束括號(hào)時(shí),會(huì)把程序控制權(quán)交還給主程序。
調(diào)用函數(shù)時(shí),傳遞所需參數(shù),如果函數(shù)返回一個(gè)值,則可以存儲(chǔ)返回值。例如:
如上把 max() 函數(shù)和 main() 函數(shù)放一塊,編譯源代碼。當(dāng)運(yùn)行最后的可執(zhí)行文件時(shí),會(huì)產(chǎn)生下列結(jié)果:
形式參數(shù)就像函數(shù)內(nèi)的其他局部變量,在進(jìn)入函數(shù)時(shí)被創(chuàng)建,退出函數(shù)時(shí)被銷毀。
當(dāng)調(diào)用函數(shù)時(shí),有兩種向函數(shù)傳遞參數(shù)的方式:
默認(rèn)情況下,C 使用 傳值調(diào)用 來傳遞參數(shù)。一般來說,這意味著函數(shù)內(nèi)的代碼不能改變用于調(diào)用函數(shù)的實(shí)際參數(shù)。
c語言知識(shí)點(diǎn)有:
1、C語言程序是由多個(gè)函數(shù)構(gòu)成的。
2、每個(gè)C語言程序中有且只有一個(gè)main函數(shù)。
3、C語言不使用行號(hào),無程序行的概念。
4、程序中可使用空行和空格。
5、C語言程序格式常用鋸齒形書寫格式。
6、C語言程序中可加任意多的注釋,注釋形式/*……*/,并且注釋形式不能嵌套,即不能注釋里面又有另一個(gè)注釋。//行注釋是C++當(dāng)中新增加的內(nèi)容。
7、引用C語言標(biāo)準(zhǔn)庫(kù)函數(shù),一般要用文件包含預(yù)處理命令將其頭文件包含進(jìn)來。
8、用戶自定義的函數(shù),必須先定義后使用。
9、變量必須先定義后使用。
10、變量名,函數(shù)名必須是合法的標(biāo)識(shí)符,標(biāo)識(shí)符習(xí)慣用小寫字母,C語言是字母大小寫敏感的語言。
11、不能用關(guān)鍵字來命名變量和函數(shù)。
12、C語言的語句都是以分號(hào)結(jié)尾的。
13、計(jì)算機(jī)中使用的進(jìn)制數(shù)是二進(jìn)制數(shù),而不是十進(jìn)制數(shù),因?yàn)槎M(jìn)制只有兩個(gè)數(shù)碼,運(yùn)算簡(jiǎn)單便于硬件實(shí)現(xiàn),同時(shí)二進(jìn)制便于邏輯運(yùn)算。
將十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)應(yīng)分為整數(shù)部分轉(zhuǎn)換和小數(shù)部分轉(zhuǎn)換,整數(shù)部分轉(zhuǎn)換可采用基數(shù)除法來實(shí)現(xiàn),小數(shù)部分轉(zhuǎn)換可采用基數(shù)乘法來實(shí)現(xiàn)。八進(jìn)制和十六進(jìn)制也是C語言中經(jīng)常表示數(shù)據(jù)的進(jìn)制,因?yàn)樗鼈兣c二進(jìn)制之間的轉(zhuǎn)換非常方便,但要注意他們不是計(jì)算機(jī)中使用的進(jìn)制。
14、機(jī)器數(shù)的表示形式有原碼、反碼和補(bǔ)碼幾種形式,計(jì)算機(jī)中通常使用補(bǔ)碼的形式來表示一個(gè)數(shù),因?yàn)檠a(bǔ)碼運(yùn)算可以連同符號(hào)位一起參與運(yùn)算,這便于運(yùn)算器的設(shè)計(jì)與實(shí)現(xiàn)。
C語言知識(shí)要點(diǎn)——轉(zhuǎn)給那些還沒把書看完的同志們
來源: 李志遠(yuǎn)的日志
1.C源程序的框架
盡管各個(gè)C源程序的功能千變?nèi)f化,但框架是不變的,主要有:編譯預(yù)處理、主函數(shù)()、函數(shù)n()等,主函數(shù)的位置不一定在最前面,可以在程序的中部或后面,主函數(shù)的名字固定為main。
2.C語言源程序的書寫規(guī)則:
(1)C源程序是由一個(gè)主函數(shù)和若干個(gè)其它函數(shù)組成的。
(2)函數(shù)名后必須有小括號(hào),函數(shù)體放在大括號(hào)內(nèi)。
(3)C程序必須用小寫字母書寫。
(4)每句的末尾加分號(hào)。
(5)可以一行多句。
(6)可以一句多行。
(7)可以在程序的任何位置加注釋。
3.語句種類
語句是程序的基本成分,程序的執(zhí)行就是通過一條條語句的執(zhí)行而得以實(shí)現(xiàn)的,根據(jù)表現(xiàn)形式及功能的不同,C語言的基本語句可以分為五大類。
(1)流程控制語句
流程控制語句的功能是控制程序的走向,程序的流程有三種基本結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),任何復(fù)雜的程序都可以由這三種基本結(jié)構(gòu)復(fù)合而成。其中后兩種結(jié)構(gòu)要用特定的流程控制語句實(shí)現(xiàn)。
(2)表達(dá)式語句
表達(dá)式語句的形式是:表達(dá)式;,即表達(dá)式后跟一分號(hào)";",分號(hào)是語句結(jié)束符,是一個(gè)語句必不可少的成分。表達(dá)式和表達(dá)式語句的區(qū)別在于表達(dá)式代表的是一個(gè)數(shù)值,而表達(dá)式語句則代表一種動(dòng)作。最常見的表達(dá)式語句是賦值語句。
(3)函數(shù)調(diào)用語句
函數(shù)調(diào)用語句實(shí)際上也是一種表達(dá)式語句,形式為:在一次函數(shù)調(diào)用的小括號(hào)后面加上一個(gè)分號(hào)。
(4)空語句
空語句的形式就是一個(gè)分號(hào),它不代表任何動(dòng)作,常常作為一個(gè)意義轉(zhuǎn)折點(diǎn)使用。
(5)復(fù)合語句
復(fù)合語句從形式上看是多個(gè)語句的組合,但在語法意義上它只相當(dāng)于一個(gè)語句,在任何單一語句存在的地方都可以是復(fù)合語句。注意復(fù)合語句中最后一個(gè)語句末尾的分號(hào)不能少。復(fù)合語句右大括號(hào)后面沒有分號(hào)。
4.運(yùn)算符
用來表示數(shù)據(jù)各種操作的符號(hào)稱為運(yùn)算符。運(yùn)算符實(shí)際上代表了一種類型數(shù)據(jù)的運(yùn)算規(guī)則。不同的運(yùn)算符具有不同的運(yùn)算規(guī)則,其操作的數(shù)據(jù)類型必須符合該運(yùn)算符的要求,運(yùn)算結(jié)果的數(shù)據(jù)類型也是固定的。
根據(jù)參加操作的數(shù)據(jù)個(gè)數(shù)多少,可以將C語言的運(yùn)算符分為單目運(yùn)算符,雙目運(yùn)算符和三目運(yùn)算符(三目運(yùn)算符只有條件運(yùn)算符一個(gè))。
根據(jù)運(yùn)算對(duì)象和運(yùn)算結(jié)果的數(shù)據(jù)類型可分為算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符等。
5.表達(dá)式
表達(dá)式是由常量、變量、函數(shù),通過運(yùn)算符連接起來而形成的一個(gè)算式。一個(gè)常量,一個(gè)變量或一個(gè)函數(shù)都可以看成是一個(gè)表達(dá)式。
表達(dá)式的種類有:
算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、賦值表達(dá)式、字位表達(dá)式、強(qiáng)制類型轉(zhuǎn)換表達(dá)式、逗號(hào)表達(dá)式(順序表達(dá)式)、條件表達(dá)式、指針表達(dá)式。
6.數(shù)據(jù)的輸入/輸出
C語言本身沒有輸人/輸出語句,數(shù)據(jù)的輸入/輸出是通過調(diào)用庫(kù)函數(shù)來實(shí)現(xiàn)的。
第二章 數(shù)據(jù)類型知識(shí)點(diǎn)
劃分?jǐn)?shù)據(jù)類型的意義是編譯系統(tǒng)對(duì)每個(gè)不同類型的數(shù)據(jù)在內(nèi)存中分配的字節(jié)數(shù)不同,不同類型的數(shù)據(jù)可以按規(guī)定參加不同類型的運(yùn)算。
1.C語言的數(shù)據(jù)類型
數(shù)據(jù)類型有:整型、字符型、實(shí)型單精度型、雙精度型、構(gòu)造類型數(shù)組類型、結(jié)構(gòu)體類型、共用體類型、枚舉類型、指針類型、空類型,其中整型、實(shí)型、字符型是C語言中的基本類型。
2.各種類型數(shù)據(jù)的定義方法
定義形式:數(shù)據(jù)類型 變量名1,變量名2,......變量名n;
3.常量與變量
(1)常量——在程序執(zhí)行期間其值不變的量。它不能被賦值。
(2)變量——在程序運(yùn)行期間其值可以改變的量。
4.各種類型數(shù)據(jù)的混合運(yùn)算
各類數(shù)據(jù)運(yùn)算前會(huì)自動(dòng)轉(zhuǎn)換成同一類型。規(guī)律如右圖示:從右向左的箭頭表示必定的轉(zhuǎn)換,如float型數(shù)據(jù)運(yùn)算前化成double型,以提高運(yùn)算精度,結(jié)果也為double型,short或char型數(shù)據(jù)運(yùn)算前化成int型,結(jié)果也為int型;從下向上的箭頭表示轉(zhuǎn)換方向是向級(jí)別高的靠攏。
5.強(qiáng)制類型變換
當(dāng)我們需要對(duì)數(shù)據(jù)進(jìn)行類型變換,而機(jī)器又不能自動(dòng)完成時(shí),就要用強(qiáng)制類型變換,形式為:(數(shù)據(jù)類型符)(被轉(zhuǎn)換對(duì)象)。
第三章 選擇知識(shí)點(diǎn)
C語言中實(shí)現(xiàn)選擇結(jié)構(gòu)的控制語句有兩種:條件分支語句if和開關(guān)分支語句switch。
1.if語句的三種形式:
(1) if(表達(dá)式)語句;
(2) if(表達(dá)式)語句1;
else語句2;
(3) if(表達(dá)式1)語句1;
else if(表達(dá)式2)語句2;
else if(表達(dá)式3)語句3;
...
else if(表達(dá)式n)語句n;
2.開關(guān)分支語句switch
(1)形式
switch(表達(dá)式)
{ case e1:語句1;break;
case e2:語句2;break;
case e3:語句3;break;
......
case en:語句n;break;
default :語句n+1;
}
(2)功能
當(dāng)表達(dá)式的值等于e1時(shí),執(zhí)行語句1;
當(dāng)表達(dá)式的值等于e2時(shí),執(zhí)行語句2;
......
當(dāng)表達(dá)式的值等于en時(shí),執(zhí)行語句n;
當(dāng)表達(dá)式的值與常量e1、e2......en誰都不等時(shí),就執(zhí)行default后的語句
第四章 循環(huán)知識(shí)點(diǎn)
循環(huán)就是在程序執(zhí)行過程中,反復(fù)多次的執(zhí)行同一段程序。C語言中有三種循環(huán)語句。
1.while循環(huán)語句
形式為:while(表達(dá)式)
{
循環(huán)體
};
執(zhí)行過程是:先計(jì)算表達(dá)式的值,當(dāng)表達(dá)式的值非0時(shí)就執(zhí)行循環(huán)體,之后再判斷表達(dá)式的值,且重復(fù)以上過程;當(dāng)表達(dá)式的值為0時(shí)就結(jié)束循環(huán)。
2.do-- while循環(huán)語句
形式為:do
{
循環(huán)體
} while(表達(dá)式);
執(zhí)行過程是:先執(zhí)行循環(huán)體一次,再判斷表達(dá)式的值,當(dāng)表達(dá)式的值非0時(shí)就再執(zhí)行循環(huán)體,之后再判斷表達(dá)式的值,且重復(fù)以上過程;當(dāng)表達(dá)式的值為0時(shí)就結(jié)束循環(huán)。
3.for循環(huán)語句
形式為:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)
{ 循環(huán)體 }
4.三種循環(huán)語句的比較
三種循環(huán)語句可以完成同一件事,可任選其一。
使用while和do-- while循環(huán)時(shí),要提前給循環(huán)變量賦初值。而for循環(huán)是在表達(dá)式1中賦初值的。
while循環(huán)和for循環(huán)都是先判斷條件后執(zhí)行循環(huán)體,有可能一次也不執(zhí)行循環(huán)體,do-- while循環(huán)是先執(zhí)行循環(huán)體,后判斷條件,即循環(huán)體至少也得執(zhí)行一次。for循環(huán)不限于計(jì)數(shù)循環(huán),其循環(huán)條件可以是邏輯表達(dá)式和字符表達(dá)式等。
5.循環(huán)嵌套
三種循環(huán)控制語句可以互相嵌套,即在一個(gè)循環(huán)體內(nèi)部又可以出現(xiàn)另一循環(huán),這種嵌套在理論上來說可以是無限的。注意必須是一個(gè)循環(huán)完整的套住另一個(gè)循環(huán)。
6.break語句
break語句只能出現(xiàn)在三種循環(huán)語句和switch多分支語句中,其作用是用來中斷這四種語句的執(zhí)行。當(dāng)程序執(zhí)行到break語句時(shí),會(huì)跳出break語句所在的循環(huán)或switch分支,而直接執(zhí)行緊跟在它們后面的語句。
7.continue語句
continue語句只能出現(xiàn)在三種循環(huán)語句中,當(dāng)程序執(zhí)行到continue語句時(shí),其作用是提前結(jié)束本次循環(huán),自動(dòng)跳過循環(huán)體中后半部剩余的語句的執(zhí)行,而直接回到循環(huán)條件判斷。根據(jù)判斷的結(jié)果決定是否繼續(xù)執(zhí)行下次循環(huán)。
8. goto 語句
goto語句是一種非結(jié)構(gòu)化語句,其作用是使程序的執(zhí)行無條件的轉(zhuǎn)移到某一處。使用格式為: goto 標(biāo)號(hào);利用goto語句與if條件語句配合,也可以實(shí)現(xiàn)條件循環(huán)。C語句允許在任何語句前添加標(biāo)號(hào),作為跳轉(zhuǎn)目標(biāo),標(biāo)號(hào)的構(gòu)成是標(biāo)識(shí)符后面加一個(gè)":"。
第五章 數(shù)組知識(shí)點(diǎn)
數(shù)組就是同類型的一批數(shù)據(jù)的集合,用一個(gè)變量名存放,區(qū)分各元素的辦法是用下標(biāo)。
1.一維數(shù)組
類型說明符數(shù)組名\[數(shù)組長(zhǎng)度\];
(1)數(shù)組命名要符合標(biāo)識(shí)符的命名規(guī)則。
(2)數(shù)組名后的括號(hào)必須是方括號(hào),不能是圓括號(hào)。
(3)數(shù)組長(zhǎng)度必須是正整數(shù),可以是個(gè)表達(dá)式,但不能有變量,C語言不支持動(dòng)態(tài)數(shù)組。
(4)數(shù)組長(zhǎng)度表示數(shù)組中元素的個(gè)數(shù)
(5)數(shù)組元素的下標(biāo)從0開始數(shù),所以最大下標(biāo)是數(shù)組的長(zhǎng)度減1。
2.多維數(shù)組(以二維為例)
類型說明符數(shù)組名\[第一維長(zhǎng)度\]\[第二維長(zhǎng)度\];
(1)數(shù)組命名要符合標(biāo)識(shí)符的命名規(guī)則。
(2)數(shù)組名后的括號(hào)必須是兩個(gè)方括號(hào),定義時(shí)不能寫成inta\[3,4\];。
(3)數(shù)組長(zhǎng)度必須是整型常量表達(dá)式。
(4)第一維長(zhǎng)度表示數(shù)組行數(shù),第二維長(zhǎng)度表示數(shù)組列數(shù)。
(5)每個(gè)數(shù)組元素都有兩個(gè)下標(biāo),第一維表示該元素所在的行,第二維表示該元素所在的列,每一維的下標(biāo)都從0開始數(shù)。
二維數(shù)組的初始化:C語言規(guī)定只有靜態(tài)數(shù)組和外部數(shù)組才允許在定義時(shí)賦初值,賦初值形式如下:
static類型說明符數(shù)組名\[第一維長(zhǎng)度\]\[第二維長(zhǎng)度\]={初值表};
二維數(shù)組的引用:二維數(shù)組不能整體引用,要引用數(shù)組的單個(gè)元素,形式為:數(shù)組名\[下標(biāo)\]\[下標(biāo)\]和普通變量的使用無任何區(qū)別。
3.字符數(shù)組
C語言中沒有字符串變量,字符串是靠字符數(shù)組實(shí)現(xiàn)的,所謂字符數(shù)組就是元素的數(shù)據(jù)類型為字符型的數(shù)組。
(1)字符數(shù)組的定義形式:char數(shù)組名\[數(shù)組長(zhǎng)度\];
因?yàn)镃語言中的整型數(shù)據(jù)和字符型數(shù)據(jù)是相通的,所以也可以這樣定義:int數(shù)組名\[數(shù)組長(zhǎng)度\];
(2)字符數(shù)組的初始化:給字符數(shù)組的初始化有兩種方式,一種是用字符常量,另一種是用字符串。形式如下:
staticchar數(shù)組名\[數(shù)組長(zhǎng)度\]={字符常量表};
staticchar數(shù)組名\[數(shù)組長(zhǎng)度\]={字符串常量};
4.數(shù)組與函數(shù)
數(shù)組經(jīng)常作為函數(shù)的參數(shù),數(shù)組做函數(shù)的參數(shù)有兩種形式,一是數(shù)組元素做函數(shù)的參數(shù),一是數(shù)組名做函數(shù)的參數(shù),當(dāng)用數(shù)組名做函數(shù)的實(shí)參時(shí)傳送的是首地址。
5.常用的字符串處理函數(shù)
C語言提供了一些處理字符串的標(biāo)準(zhǔn)函數(shù),用以完成一些常見的操作。對(duì)以下幾個(gè)函數(shù)要掌握其功能和調(diào)用形式。
(1)gets(字符數(shù)組名)此函數(shù)功能是從鍵盤輸入一串字符,回車后送到字符數(shù)組中,注意定義數(shù)組時(shí)數(shù)組長(zhǎng)度要足夠大。
(2)puts(字符數(shù)組名)此函數(shù)功能是將字符數(shù)組的內(nèi)容輸出到屏幕上。
(3)strcat(字符數(shù)組名1,字符數(shù)組名2)此函數(shù)功能是將字符數(shù)組1中的'\\0'去掉后將字符數(shù)組2的內(nèi)容連接到字符數(shù)組1的末尾。
(4)strcpy(字符數(shù)組名1,字符數(shù)組名2)函數(shù)功能是將字符數(shù)組2的內(nèi)容(包括'\\0')拷貝到字符數(shù)組1中,字符數(shù)組2處也可以是字符串常量。strcpy函數(shù)可以實(shí)現(xiàn)拷子串。
(5)strcmp(字符數(shù)組名1,字符數(shù)組名2)函數(shù)功能是兩個(gè)字符串(ASCII碼)比大小。
(6)strlen(字符數(shù)組名)此函數(shù)功能是求字符串的長(zhǎng)度,注意不包括'\\0'。
(7)strlwr(字符數(shù)組名)此函數(shù)功能是將字符串中的所有大寫字母都變成小寫。
(8)strupr(字符數(shù)組名)此函數(shù)功能是將字符串中的所有小寫字母都變成大寫。
第六章 函數(shù)知識(shí)點(diǎn)
每個(gè)C源程序都是由函數(shù)組成的,一個(gè)主函數(shù)和若干個(gè)其它函數(shù),C語言程序設(shè)計(jì)的基礎(chǔ)工作就是函數(shù)的具體編寫,C語言中的函數(shù)就相當(dāng)于其它高級(jí)語言中的子程序。
1.函數(shù)的概念
函數(shù)就是一個(gè)數(shù)據(jù)加工廠,從函數(shù)外部接收數(shù)據(jù),在函數(shù)內(nèi)部加工處理,然后得到一個(gè)結(jié)果返回給外部的調(diào)用者。所以函數(shù)就是對(duì)語言功能的擴(kuò)充,對(duì)函數(shù)的調(diào)用就是對(duì)功能的調(diào)用。
2.標(biāo)準(zhǔn)函數(shù)
各種高級(jí)語言都定義了一些標(biāo)準(zhǔn)函數(shù),C語言中的標(biāo)準(zhǔn)函數(shù)稱為庫(kù)函數(shù),是將一些基本的、常用的功能編成了函數(shù),供大家使用方便。使用庫(kù)函數(shù)時(shí)必須把它的頭文件用#i nclude命令包含進(jìn)來,每個(gè)庫(kù)函數(shù)的功能及對(duì)應(yīng)的頭文件都會(huì)在手冊(cè)中給出。
3.自定義函數(shù)
C 語言也允許用戶自己編寫函數(shù)以實(shí)現(xiàn)C庫(kù)函數(shù)中沒有提供的功能,稱作自定義函數(shù)。
4.定義函數(shù)
C語言規(guī)定每個(gè)函數(shù)都要獨(dú)立定義,函數(shù)定義不能嵌套。
函數(shù)定義的形式:數(shù)據(jù)類型函數(shù)名(形參表)
形參說明語句序列
{ 說明語句序列
可執(zhí)行語句序列 }
5.函數(shù)調(diào)用
函數(shù)調(diào)用的形式是: 函數(shù)名(實(shí)參表)。當(dāng)實(shí)參表中有多個(gè)參數(shù)時(shí),要用逗號(hào)隔開,若被調(diào)函數(shù)無參數(shù),調(diào)用時(shí)小括號(hào)也不能省。函數(shù)調(diào)用過程是:將實(shí)參的值傳給形參,在函數(shù)體內(nèi)進(jìn)行加工處理,然后由return語句將函數(shù)值返回調(diào)用處。
5.全局變量和局部變量
局部變量:在函數(shù)內(nèi)部定義的變量稱為局部變量,只在本函數(shù)中有效。
全局變量:在函數(shù)外部定義的變量稱為全局變量,它的作用范圍是從定義開始到本文件結(jié)束。
6.動(dòng)態(tài)存儲(chǔ)與靜態(tài)存儲(chǔ)
內(nèi)存中的用戶數(shù)據(jù)區(qū)分為動(dòng)態(tài)存儲(chǔ)區(qū)和靜態(tài)存儲(chǔ)區(qū),動(dòng)態(tài)存儲(chǔ)區(qū)是指程序運(yùn)行期間給變量臨時(shí)分配存儲(chǔ)單元,變量用完后立即釋放單元的區(qū)域,動(dòng)態(tài)存儲(chǔ)區(qū)放的是函數(shù)的形參、自動(dòng)變量、函數(shù)調(diào)用期間的現(xiàn)場(chǎng)保護(hù)數(shù)據(jù)和返回地址。
靜態(tài)存儲(chǔ)區(qū)是指程序運(yùn)行期間給變量分配固定的存儲(chǔ)單元,放的是全局變量和局部靜態(tài)變量。
一個(gè)變量除了它的數(shù)據(jù)類型以外還有存儲(chǔ)類型,定義一個(gè)變量時(shí)應(yīng)該說明這兩種類型。
第七章 預(yù)處理知識(shí)點(diǎn)
對(duì)高級(jí)語言編譯連接就是把源程序轉(zhuǎn)換成機(jī)器語言,C語言在進(jìn)行編譯之前還要預(yù)先處理三件事:宏定義命令、文件包含命令和條件編譯命令,統(tǒng)稱為預(yù)處理命令,其特點(diǎn)是:
1.所有的預(yù)處理命令都放在程序的頭部,以#開頭,且#號(hào)后面不留空格。
2.預(yù)處理命令不是C的語句,行尾不加分號(hào)。
3.預(yù)處理命令是在編譯預(yù)處理階段完成的,所以它們沒有任何計(jì)算、操作等執(zhí)行功能。
4.預(yù)處理命令有所變動(dòng)后,必須對(duì)程序重新進(jìn)行編譯和連接。
1.宏定義
宏定義命令的作用是給一些常用的對(duì)象重新命名,在程序中可以用宏名來引用這些對(duì)象,預(yù)處理時(shí)宏名會(huì)被代表的內(nèi)容替換,此過程稱為宏展開或宏替換。宏定義有兩種形式:
2.文件包含
使用文件包含命令可以將另—個(gè)C源程序的全部?jī)?nèi)容包含進(jìn)來,其形式為:
#i nclude <文件名>或#i nclude "文件名"
通??梢园呀?jīng)常用到的,帶公用性的一些函數(shù)或符號(hào)等集合在...起形成一個(gè)源文件,然后用此命令將這個(gè)源文件包含進(jìn)來,這樣可以避免在每個(gè)新程序中都要重新鍵入這些內(nèi)容。
3.條件編譯
顧名思義滿足條件時(shí)進(jìn)行編譯,為了解決程序移植問題,C語言提供了條件編譯命令,它能使源程序在不同的編譯環(huán)境下生成不同的目標(biāo)代碼文件。條件編譯命令有3種形式。
第八章 指針知識(shí)點(diǎn)
1.什么是指針和指針變量?
指針就是內(nèi)存地址,因?yàn)橥ㄟ^"地址"可以找到變量,所以內(nèi)存"地址"形象的稱為指針。
指針變量就是存地址的變量。在C語言中用一個(gè)變量存另一個(gè)變量的地址,那么就稱這個(gè)變量為指針變量,指針變量的值就是地址。通常指針變量被簡(jiǎn)稱為指針。
指針變量是有類型的,即指針值增1表示指向下一個(gè)數(shù)據(jù),如整型數(shù)據(jù)在內(nèi)存中占兩個(gè)字節(jié),它的指針變量增1是增兩個(gè)字節(jié)。如實(shí)型數(shù)據(jù)在內(nèi)存中占4個(gè)字節(jié),它的指針變量增1是增4個(gè)字節(jié)。
2.怎樣定義指針變量?
定義形式為:數(shù)據(jù)類型*指針變量名1,*指針變量名2......;
3.指針的有關(guān)運(yùn)算
指針為內(nèi)存地址是整數(shù),可以進(jìn)行一些算術(shù)運(yùn)算、關(guān)系運(yùn)算、賦值運(yùn)算、特殊運(yùn)算等,但要注意運(yùn)算代表的實(shí)際意義。
4.指向數(shù)組的指針變量
(1)指向數(shù)組元素的指針變量定義形式為:inta\[10\];
int*p=a;
(2)指向一維數(shù)組的指針變量
定義形式為:inta\[3\]\[4\];
int(*p)\[4\];
p=a;
(3)指向字符串的指針變量
定義形式為: char*p="字符序列";
C語言中的字符串是以隱含形式的字符數(shù)組存放的,定義了指針變量p并不是將整個(gè)字符串都存放在p中了,而p中存放的是字符串的首地址。
5.指向函數(shù)的指針變量
一個(gè)函數(shù)在編譯時(shí)被分配一個(gè)入口地址,這個(gè)地址就是函數(shù)的指針,可以用一個(gè)指針變量指向它。指向函數(shù)的指針變量定義形式為:
數(shù)據(jù)類型(*指針變量名);
6.指針變量做函數(shù)的參數(shù)
(1)指針作函數(shù)的參數(shù)可以傳送地址,如數(shù)組的首地址,函數(shù)的入口地址等。
(2)指針作函數(shù)的參數(shù)也可以用地址方式傳送數(shù)據(jù)。
7.返回值是指針的函數(shù)
即函數(shù)的返回值是內(nèi)存的地址,利用這種方法可以將一個(gè)以上的數(shù)據(jù)返回給函數(shù)的調(diào)用者。定義形式如下:
數(shù)據(jù)類型*函數(shù)名(形參表)
8.指針數(shù)組
定義形式為:數(shù)據(jù)類型*數(shù)組名\[數(shù)組長(zhǎng)度\];
數(shù)組中的每個(gè)元素都是指針類型的數(shù)據(jù),這種數(shù)組被稱為指針數(shù)組。
9.指向指針的指針
定義形式為:數(shù)據(jù)類型**指針變量名;
指向指針數(shù)據(jù)的指針變量稱為指向指針的指針。
10.main函數(shù)的形參
main函數(shù)可以帶兩個(gè)形參,如:
main(argc,argv)
intargc;
char *argv\[\];
{
......
}
11.指向結(jié)構(gòu)體的指針變量
結(jié)構(gòu)體變量的指針就是該變量所占據(jù)的內(nèi)存段的首地址。指向結(jié)構(gòu)體的指針變量定義形式為:struct結(jié)構(gòu)體類型名*指針變量名;
12.指向共用體的指針變量
共用體變量的指針就是該變量所占據(jù)的內(nèi)存段的首地址。指向共用體的指針變量定義形式為:union共用體類型名*指針變量名;
替換了的字符時(shí)(這里為正中間的字符"4"),原來的字符己不復(fù)存在。
第九章 結(jié)構(gòu)體與共用體知識(shí)點(diǎn)
結(jié)構(gòu)體類型是C語言的一種構(gòu)造數(shù)據(jù)類型,它是多個(gè)相關(guān)的不同類型數(shù)據(jù)的集合,相當(dāng)于其它高級(jí)語言中的記錄。
1.結(jié)構(gòu)體類型定義
結(jié)構(gòu)體類型的形式為:
struct結(jié)構(gòu)體類型名
{ 數(shù)據(jù)類型成員名1;
...
數(shù)據(jù)類型成員名n;
}
2.結(jié)構(gòu)體變量的定義
結(jié)構(gòu)體變量有三種定義形式:
(1)先定義結(jié)構(gòu)體類型,后定義結(jié)構(gòu)體變量。
(2)定義結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體變量。
(3)不定義結(jié)構(gòu)體類型名,直接定義結(jié)構(gòu)體變量。
3.結(jié)構(gòu)體變量的引用
(1)結(jié)構(gòu)體變量的初始化:許多C版本規(guī)定對(duì)外部或靜態(tài)存儲(chǔ)類型的結(jié)構(gòu)體變量可以進(jìn)行初始化,而對(duì)局部的結(jié)構(gòu)體變量則不可以,新標(biāo)準(zhǔn)C無此限制,允許在定義時(shí)對(duì)自動(dòng)變量初始化。
(2)結(jié)構(gòu)體成員的引用:由于C語言一般不允許對(duì)結(jié)構(gòu)體變量的整體引用,所以對(duì)結(jié)構(gòu)體的引用只能是對(duì)分量的引用,結(jié)構(gòu)體變量中的任一分量可以表示為:結(jié)構(gòu)體變量名·成員名
4.結(jié)構(gòu)體與數(shù)組
C語言中數(shù)組的成員可以是結(jié)構(gòu)體變量,結(jié)構(gòu)體變量的成員也可以是數(shù)組。
結(jié)構(gòu)體數(shù)組有三種定義形式:
(1)先定義結(jié)構(gòu)體類型,后定義結(jié)構(gòu)體數(shù)組。
(2)定義結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體數(shù)組。
(3)不定義結(jié)構(gòu)體類型名,直接定義結(jié)構(gòu)體變量。
5.結(jié)構(gòu)體與指針
一方面結(jié)構(gòu)體變量中的成員可以是指針變量,另一方面也可以定義指向結(jié)構(gòu)體的指針變量,指向結(jié)構(gòu)體的指針變量的值是某一結(jié)構(gòu)體變量在內(nèi)存中的首地址。
結(jié)構(gòu)體指針的定義形式:struct結(jié)構(gòu)體類型名*結(jié)構(gòu)體指針變量名。
由結(jié)構(gòu)體指針引用結(jié)構(gòu)體成員的方法
6.用指針處理鏈表
結(jié)構(gòu)體的成員可以是指針類型,并且這個(gè)指針類型就是本結(jié)構(gòu)體類型的,這樣可以構(gòu)造出一種動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)—成為鏈表。所謂動(dòng)態(tài)數(shù)據(jù)就是指在編譯時(shí)不能確定數(shù)據(jù)量的多少,而是在程序執(zhí)行時(shí)才確定的數(shù)據(jù),動(dòng)態(tài)數(shù)據(jù)可以比較方便的進(jìn)行數(shù)據(jù)插人或刪除等操作。
7.結(jié)構(gòu)體與函數(shù)
結(jié)構(gòu)體變量的成員可以作函數(shù)的參數(shù)、指向結(jié)構(gòu)體變量的指針也可以作函數(shù)的參數(shù)。雖然結(jié)構(gòu)體變量名也可以作為函數(shù)的參數(shù),將整個(gè)結(jié)構(gòu)體變量進(jìn)行傳遞,但一般不這樣做,因?yàn)槿绻Y(jié)構(gòu)體的成員很多,或者有些成員是數(shù)組,則程序運(yùn)行期間,將全部成員一個(gè)一個(gè)的傳遞,既浪費(fèi)時(shí)間,又浪費(fèi)空間,開銷太大。
8.結(jié)構(gòu)體與共用體
結(jié)構(gòu)體變量中的成員可以是共用體,共用體變量中的成員可以是結(jié)構(gòu)體。
共用體
為了節(jié)省存儲(chǔ)空間,C語言允許將幾種不同類型的數(shù)據(jù)存放在同一段內(nèi)存單元,它們共用一個(gè)起始地址,稱做共用體。
1.共用體類型定義
union共用體類型名
{ 數(shù)據(jù)類型成員名1;
...
數(shù)據(jù)類型成員名n;
}
2.共用體變量定義
(1)先定義類型,后定義變量。
(2)定義類型的同時(shí)定義變量。
(3)不定義類型名,直接定義變量。
3.共用體變量的引用
(1)共用體變量不能整體引用,只能引用其成員,形式為:共用體變量名·成員名
(2)共用體變量的成員不能初始化,因?yàn)樗荒芊乓粋€(gè)數(shù)據(jù)。
(3)共用體變量存放的數(shù)據(jù)是最后放入的數(shù)據(jù)。
(4)共用體變量的長(zhǎng)度是最大的成員的長(zhǎng)度。
(5)可以引用共用體變量的地址、各個(gè)成員的地址,它們都是同一個(gè)地址。
(6)共用體變量不能當(dāng)函數(shù)的參數(shù)或函數(shù)的返回值,但可以用指向共用體變量的指針作函數(shù)的參數(shù)。
(7)共用體變量的成員可以是數(shù)組,數(shù)組的成員也可以是共用體變量。
第十章 位運(yùn)算知識(shí)點(diǎn)
位運(yùn)算就是按二進(jìn)制位進(jìn)行操作的運(yùn)算,運(yùn)算的對(duì)象只能是整型或字符型,不能是實(shí)型。不同長(zhǎng)度的變量進(jìn)行位運(yùn)算,系統(tǒng)會(huì)自動(dòng)右對(duì)齊,而左端的不齊部分,對(duì)于無符號(hào)數(shù)左端補(bǔ)滿0,對(duì)于有符號(hào)數(shù)則:正數(shù)左端補(bǔ)滿0,負(fù)數(shù)左端補(bǔ)滿1。
第十一章 文件知識(shí)點(diǎn)
操作系統(tǒng)是以文件為單位對(duì)數(shù)據(jù)進(jìn)行管理的,任何一種計(jì)算機(jī)高級(jí)語言都要有和磁盤文件打交道的能力,否則該語言的功能充其量是算一算、顯示顯示而已。在C語言中沒有單獨(dú)的文件操作語句,所有對(duì)文件的操作都是通過庫(kù)函數(shù)來完成的,所以本章的重點(diǎn)是學(xué)會(huì)使用有關(guān)文件操作的庫(kù)函數(shù)。
1.文件的基本概念
2.文件類型指針
3.文件的操作
第六章
指針變量的本質(zhì)是用來放地址,而一般的變量是放數(shù)值的。
int *p 中 *p和p的差別:
*p可以當(dāng)做變量來用;*的作用是取后面地址p里面的數(shù)值
p是當(dāng)作地址來使用。
*p++ 和 (*p)++的之間的差別:改錯(cuò)題目中很重要
*p++是 地址會(huì)變化。
(*p)++ 是數(shù)值會(huì)要變化。
三名主義:(考試的重點(diǎn))
數(shù)組名:表示第一個(gè)元素的地址。數(shù)組名不可以自加,
他是地址常量名。(考了很多次)
函數(shù)名:表示該函數(shù)的入口地址。
字符串常量名:表示第一個(gè)字符的地址。
第七章
1一維數(shù)組的重要概念:
對(duì)a[10]這個(gè)數(shù)組的討論。
1、a表示數(shù)組名,是第一個(gè)元素的地址,也就是
元素a[10]的地址。
2、a是地址常量,所以只要出現(xiàn)a++,或者
是a=a+2賦值的都是錯(cuò)誤的。
3、a是一維數(shù)組名,所以它是列指針,也就是
說a+1是跳一列。
對(duì)a[3][3]的討論。
1、a表示數(shù)組名,是第一個(gè)元素的地址,也就是
元素a[10]的地址。
2、a是地址常量,所以只要出現(xiàn)a++,或者
是a=a+2賦值的都是錯(cuò)誤的。
3、a是二維數(shù)組名,所以它是行指針,也就
是說a+1是跳一行。
4、a[0]、a[1]、a[2]也都是地址常量,不可以對(duì)
它進(jìn)行賦值操作,同時(shí)它們都是列指針,a[0]+1,
a[1]+1,a[2]+1都是跳一列。
5、注意a和a[0] 、a[1]、a[2]是不同的,它們的
基類型是不同的。前者是一行元素,后三者是一列元素。
二維數(shù)組做題目的技巧:
如果有a[3][3]={1,2,3,4,5,6,7,8,9}這樣的題目。
步驟一:把他們寫成:
第一列 第二列 第三列
a[0]à 1 2 3 -第一行
a[1]à 4 5 6—第二行
a[2]à 7 8 9-第三行
步驟二:這樣作題目間很簡(jiǎn)單:
*(a[0]+1)我們就知道是第一行的第一個(gè)元素往后
面跳一列,那么這里就是a[0][1]元素,所以是1。
*(a[1]+2)我們就知道是第二行的第一個(gè)元素往后面
跳二列。那么這里就是a[1][2]元素,所以是6。
一定記住:只要是二維數(shù)組的題目,一定是寫成如
上的格式,再去做題目,這樣會(huì)比較簡(jiǎn)單。
數(shù)組的初始化,一維和二維的,一維可以不寫,
二維第二個(gè)一定要寫
int a[]={1,2} 合法。 int a[][4]={2,3,4}合法。
但int a[4][]={2,3,4}非法。
二維數(shù)組中的行指針
int a[1][2];
其中a現(xiàn)在就是一個(gè)行指針,a+1跳一行數(shù)組元素。
搭配(*)p[2]指針
a[0],a[1]現(xiàn)在就是一個(gè)列指針。a[0]+1 跳一個(gè)數(shù)組
元素。搭配*p[2]指針數(shù)組使用
還有記住脫衣服法則:
a[2] 變成 *(a+2) a[2][3]變成 *(a+2)[3]再
可以變成 *(*(a+2)+3)
1、順序、分支、循環(huán)等基本語句;
2、char、int、double、float等基本數(shù)據(jù)類型;
3、帶參數(shù)宏定義和函數(shù)的區(qū)別;
4、指針和數(shù)組的區(qū)別,尤其注意下指針數(shù)組和數(shù)組指針;
5、函數(shù)指針和指針函數(shù);
6、結(jié)構(gòu)體和聯(lián)合體以及自定義類型typedef的應(yīng)用;
7、printf、scanf、getchar、putchar、fopen、fclose、fgetc、fputc等基本庫(kù)函數(shù)的應(yīng)用;
8、malloc、calloc、realloc、free等內(nèi)存管理函數(shù)的應(yīng)用;
9、函數(shù)的聲明和定義;
10、注意C語言的基本單位是函數(shù);
還有很多,因?yàn)槠拗撇荒芤灰焕e,但上面提到的10點(diǎn)都是很多考試和面試中經(jīng)常出現(xiàn)的。
有時(shí)間可以看看這三本書《C和指針》、《C陷阱和缺陷》、《C專家編程》,C語言的大部分問題都可以在這三本書中找到答案,熟練掌握著三本書的內(nèi)容再加上一些實(shí)際項(xiàng)目將沒有人可以輕易用C語言的問題為難你。
計(jì)算機(jī)c語言的特性
C語言是世界上最流行、使用最廣泛的高級(jí)程序設(shè)計(jì)語言之一。在操作系統(tǒng)和系統(tǒng)使用程序以及需要對(duì)硬件進(jìn)行操作的場(chǎng)合,用C語言明顯優(yōu)于其它高級(jí)語言,許多大型應(yīng)用軟件都是用C語言編寫的。C語言的主要特性有以下幾種:
1、C是高級(jí)語言:它把高級(jí)語言的基本結(jié)構(gòu)和語句與低級(jí)語言的實(shí)用性結(jié)合起來。
2、C是結(jié)構(gòu)式語言:結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。
3、C語言功能齊全:具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可使程序效率更高。而且計(jì)算功能、邏輯判斷功能也比較強(qiáng)大,可以實(shí)現(xiàn)決策目的的游戲。
4、C語言適用范圍大:適合于多種操作系統(tǒng),如Windows、DOS、UNIX等等;也適用于多種機(jī)型。
5、C語言應(yīng)用指針:可以直接進(jìn)行靠近硬件的操作,但是C的指針操作不做保護(hù),也給它帶來了很多不安全的因素。C++在這方面做了改進(jìn),在保留了指針操作的同時(shí)又增強(qiáng)了安全性。
6、C語言創(chuàng)始人D.M.Ritchie6、C語言文件由數(shù)據(jù)序列組成:可以構(gòu)成二進(jìn)制文件或文本文件常用的C語言IDE有Microsoft Visual C++,Dev-C++,Code::Blocks,Borland C++,Watcom C++,Borland C++ Builder,GNU DJGPP C++,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free,win-tc,xcode等。
計(jì)算機(jī)c語言的語法結(jié)構(gòu)
1.順序結(jié)構(gòu)
順序結(jié)構(gòu)的程序設(shè)計(jì)是最簡(jiǎn)單的,只要按照解決問題的順序?qū)懗鱿鄳?yīng)的語句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。順序結(jié)構(gòu)可以獨(dú)立使用構(gòu)成一個(gè)簡(jiǎn)單的完整程序,常見的輸入、計(jì)算,輸出三步曲的程序就是順序結(jié)構(gòu)。
2.選擇結(jié)構(gòu)
選擇結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴(yán)格按照語句出現(xiàn)的物理順序。選擇結(jié)構(gòu)的程序設(shè)計(jì)方法的關(guān)鍵在于構(gòu)造合適的分支條件和分析程序流程,根據(jù)不同的程序流程選擇適當(dāng)?shù)倪x擇語句。
3.循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)可以減少源程序重復(fù)書寫的工作量,用來描述重復(fù)執(zhí)行某段算法的問題,這是程序設(shè)計(jì)中最能發(fā)揮計(jì)算機(jī)特長(zhǎng)的程序結(jié)構(gòu),C語言中提供四種循環(huán),即goto循環(huán)、while循環(huán)、do while循環(huán)和for循環(huán)。
4.模塊化程序結(jié)構(gòu)
C語言的模塊化程序結(jié)構(gòu)用函數(shù)來實(shí)現(xiàn),即將復(fù)雜的C程序分為若干模塊,每個(gè)模塊都編寫成一個(gè)C函數(shù),然后通過主函數(shù)調(diào)用函數(shù)及函數(shù)調(diào)用函數(shù)來實(shí)現(xiàn)一大型問題的C程序編寫,因此常說:C程序=主函數(shù)+子函數(shù)。因此,對(duì)函數(shù)的定義、調(diào)用、值的返回等中要尤其注重理解和應(yīng)用,并通過上機(jī)調(diào)試加以鞏固。
計(jì)算機(jī)c語言基礎(chǔ)知識(shí)
【知識(shí)點(diǎn)1】C程序
C語言程序結(jié)構(gòu)有三種: 順序結(jié)構(gòu) , 循環(huán)結(jié)構(gòu)(三個(gè)循環(huán)結(jié)構(gòu)), 選擇結(jié)構(gòu)(if 和 switch)
【知識(shí)點(diǎn)2】main函數(shù)
每個(gè)C語言程序中main 函數(shù)是有且只有一個(gè)。讀程序都要從main()入口, 然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇)。
【知識(shí)點(diǎn)3】存儲(chǔ)形式
計(jì)算機(jī)的數(shù)據(jù)在電腦中是以二進(jìn)制的形式保存。最低的存儲(chǔ)單元是bit(位),位是由為 0 或者1構(gòu)成。 byte 是指字節(jié), 一個(gè)字節(jié) = 八個(gè)位。數(shù)據(jù)存放的位置就是它的地址。
【知識(shí)點(diǎn)4】注釋
是對(duì)程序的說明,可出現(xiàn)在程序中任意合適的地方,注釋從“/*”開始到最近一個(gè)“*/”結(jié)束,其間任何內(nèi)容都不會(huì)被計(jì)算機(jī)執(zhí)行,注釋不可以嵌套。
【知識(shí)點(diǎn)5】書寫格式
每條語句的后面必須有一個(gè)分號(hào),分號(hào)是語句的一部分。一行內(nèi)可寫多條語句,一個(gè)語句可寫在多行上。
【知識(shí)點(diǎn)6】標(biāo)識(shí)符
合法的用戶標(biāo)識(shí)符考查:
合法的要求是由字母,數(shù)字,下劃線組成。有其它元素就錯(cuò)了。
并且第一個(gè)必須為字母或則是下劃線。第一個(gè)為數(shù)字就錯(cuò)了。
C語言標(biāo)識(shí)符分如下3類
(1)關(guān)鍵字。它們?cè)诔绦蛑杏泄潭ǖ暮x,不能另作他用。如int、for、switch等。
(2)預(yù)定義標(biāo)識(shí)符。預(yù)先定義并具有特定含義的標(biāo)識(shí)符。如define、include等。
(3)用戶標(biāo)識(shí)符。用戶根據(jù)需要定義的標(biāo)識(shí)符,符合命名規(guī)則且不與關(guān)鍵字相同。
關(guān)鍵字不可以作為用戶標(biāo)識(shí)符號(hào)。main define scanf printf 都不是關(guān)鍵字。迷惑你的地方If 是可以做為用戶標(biāo)識(shí)符。因?yàn)镮f 中的'第一個(gè)字母大寫了,所以不是關(guān)鍵字。
【知識(shí)點(diǎn)7】實(shí)型數(shù)據(jù)
實(shí)型數(shù)據(jù)的合法形式:小數(shù)形式和指數(shù)形式。掌握判定指數(shù)形式合法性。
2.333e-1 就是合法的,且數(shù)據(jù)是2.333×10-1。
考試口訣:e 前e 后必有數(shù),e 后必為整數(shù)。
【知識(shí)點(diǎn)8】字符
字符數(shù)據(jù)的合法形式::
'1' 是字符占一個(gè)字節(jié),"1"是字符串占兩個(gè)字節(jié)(含有一個(gè)結(jié)束符號(hào))。
'0' 的ASCII 數(shù)值表示為48,'a' 的ASCII 數(shù)值是97,'A'的ASCII 數(shù)值是65。
字符型和整數(shù)是近親:
char a = 65 ;
printf(“%c”, a); 得到的輸出結(jié)果:a
printf(“%d”, a); 得到的輸出結(jié)果:65
一般考試表示單個(gè)字符錯(cuò)誤的形式:'65' "1"
字符是可以進(jìn)行算術(shù)運(yùn)算的,記?。?'0'-0=48
大寫字母和小寫字母轉(zhuǎn)換的方法: 'A'+32='a' 相互之間一般是相差32。
【知識(shí)點(diǎn)9】整型數(shù)據(jù)
整型一般是兩個(gè)字節(jié), 字符型是一個(gè)字節(jié),雙精度一般是4 個(gè)字節(jié):
考試時(shí)候一般會(huì)說,在16 位編譯系統(tǒng),或者是32 位系統(tǒng)。碰到這種情況,不要去管,
一樣做題。掌握整型一般是兩個(gè)字節(jié), 字符型是一個(gè)字節(jié),雙精度一般是4 個(gè)字節(jié)就可以了。
【知識(shí)點(diǎn)10】轉(zhuǎn)義字符
轉(zhuǎn)義字符的考查:
在程序中 int a = 0x6d,是把一個(gè)十六進(jìn)制的數(shù)給變量a 注意這里的0x 必須存在。
在程序中 int a = 06d, 是一個(gè)八進(jìn)制的形式。
在轉(zhuǎn)義字符中, ’x6d’ 才是合法的,0 不能寫,并且x 是小寫。
‘141’ 是合法的, 0 是不能寫的。
‘108’是非法的,因?yàn)椴豢梢猿霈F(xiàn)8。
【知識(shí)點(diǎn)11】算術(shù)運(yùn)算
算術(shù)運(yùn)算符一共有+、—、*、/、%這五個(gè)。%符號(hào)兩邊要求是整數(shù)。不是整數(shù)就錯(cuò)了。
三種取整丟小數(shù)的情況:不是四舍五入是舍掉小數(shù)部分。
1、int a =1.6;
2、(int)a;
3、1/2; 3/2;
【知識(shí)點(diǎn)12】強(qiáng)制類型轉(zhuǎn)換
將一個(gè)運(yùn)算對(duì)象轉(zhuǎn)換成指定類型,格式為(類型名)表達(dá)式
一定是 (int)a 不是 int(a),注意類型上一定有括號(hào)的。
注意(int)(a+b) 和(int)a+b 的區(qū)別。前是把a(bǔ)+b 轉(zhuǎn)型,后是把a(bǔ) 轉(zhuǎn)型再加b。
【知識(shí)點(diǎn)13】賦值
是表達(dá)式就一定有數(shù)值。
賦值表達(dá)式:表達(dá)式數(shù)值是最左邊的數(shù)值,a=b=5;該表達(dá)式為5,常量不可以賦值。
復(fù)合賦值運(yùn)算符:注意:a*=m+2 是 a=a*(m+2)
自加、自減表達(dá)式:假設(shè)a=5,++a(表達(dá)式的值為6), a++(表達(dá)式的值為5);
j=a++;等價(jià)于j=a;a=a+1; 而j=++a;等價(jià)于a=a+1;j=a;。
考試口訣:++在前先加后用,++在后先用后加。
【知識(shí)點(diǎn)14】逗號(hào)運(yùn)算
逗號(hào)表達(dá)式:優(yōu)先級(jí)別最低; 表達(dá)式的數(shù)值逗號(hào)最右邊的那個(gè)表達(dá)式的數(shù)值。
(2,3,4)的表達(dá)式的數(shù)值就是4。
【知識(shí)點(diǎn)15】數(shù)制轉(zhuǎn)換
一定要記住二進(jìn)制 如何轉(zhuǎn)換成十進(jìn)制。
八進(jìn)制是沒有8 的,逢8 進(jìn)1,018 的數(shù)值是非法的。
【知識(shí)點(diǎn)16】位運(yùn)算
會(huì)有一到二題考試題目。
C語言提供6種位運(yùn)算符:按位求反~,按位左移,按位右移,按位與,按位異或|,按位或^。
總的處理方法:幾乎所有的位運(yùn)算的題目都要按這個(gè)流程來處理(先把十進(jìn)制變成二進(jìn)制再變成十進(jìn)制)。
異或運(yùn)算的規(guī)則:0異或1得到1,0異或0得到0,1異或1得到0??捎洖椤跋嗤瑸?,不同為1”。
在沒有舍去數(shù)據(jù)的時(shí)候,左移一位表示乘以2;右移一位表示除以2。