- 相關(guān)推薦
C語(yǔ)言初步認(rèn)識(shí)
引導(dǎo)語(yǔ):大家都聽說(shuō)過(guò)C語(yǔ)言,那么你們了解C語(yǔ)言嗎,以下是百分網(wǎng)小編分享給大家的C語(yǔ)言初步認(rèn)識(shí),幫助大家認(rèn)識(shí)C語(yǔ)言,歡迎閱讀學(xué)習(xí)!
1.1程序的構(gòu)成
盡管C程序的內(nèi)容千變?nèi)f化,但是它們的構(gòu)成都是一致的,一個(gè)完整的C源程序的格式可以如下表示:
編譯預(yù)處理
主函數(shù)()
函數(shù)()
.
.
.
函數(shù)()
從上面中可以看出,一個(gè)C源程序?qū)嶋H上就是若干函數(shù)的集合,這些函數(shù)中有一個(gè)是程序的主函數(shù),任何C的源程序執(zhí)行時(shí),都是從主函數(shù)開始執(zhí)行的,其它的函數(shù)最終必將被這個(gè)主函數(shù)所調(diào)用。C語(yǔ)言除了主函數(shù)規(guī)定必須取名main外,其它的函數(shù)名可以任取,但是要符合C的標(biāo)識(shí)符取名規(guī)則,另外注意不要與保留字重名,最好也不可與C語(yǔ)言中的庫(kù)函數(shù)或其它一些命令如編譯預(yù)處另命令重名。各個(gè)函數(shù)在程序中所處的位置并不是固定的,但要求一個(gè)函數(shù)是完整的、獨(dú)立的。不允許出現(xiàn)在一個(gè)函數(shù)內(nèi)部又去定義另一個(gè)函數(shù),或是函數(shù)格式不齊全的現(xiàn)象。一個(gè)完整的一般意義上的函數(shù)有一個(gè)固定的框架,編寫具體的函數(shù)時(shí),只需在這個(gè)框架中填入相應(yīng)的內(nèi)容即可?蚣苋缦拢
函數(shù)類型函數(shù)名(形參)
形參說(shuō)明
{
內(nèi)部變量說(shuō)明;
執(zhí)行語(yǔ)句部分;
}
1.2C語(yǔ)言的基本詞法
C語(yǔ)言的基本詞法由三部分組成:符號(hào)集、關(guān)鍵字、保留字。
符號(hào)集就是一門語(yǔ)言中允許出現(xiàn)的字符的集合,C語(yǔ)言的符號(hào)集就是ASCⅡ碼表中的一些字符,在鍵盤上不能直接得到(比如說(shuō)響鈴字符),C語(yǔ)言引入了轉(zhuǎn)義字符的概念,利用反斜杠符號(hào)″\″后加上字母的一個(gè)字符組合來(lái)表示這些字符,當(dāng)在源程序中遇到這類字符組合時(shí),雖然這個(gè)字符組合是一個(gè)字符串的形式,但C語(yǔ)言仍會(huì)自動(dòng)將之理解成某一特定的字符。比如″\″,C語(yǔ)言在處理這個(gè)字符組合時(shí),會(huì)自動(dòng)理解成回車換行符號(hào)。轉(zhuǎn)義字符經(jīng)過(guò)進(jìn)一步引申應(yīng)用,形成了另外兩種形式:″\ddd″和″\xnn″,這里″\″后的ddd和xnn分別代表三位八進(jìn)制和兩位十六進(jìn)制數(shù)(打頭的″x″只是標(biāo)明后面跟著的是十六進(jìn)制數(shù)),這兩種形式不再局限于表示不可打印的字符,它們可以表示ASCⅡ碼表中的任意字符,只要把所需表示的字符的ASCII碼轉(zhuǎn)換成八進(jìn)制數(shù)或十六進(jìn)制數(shù)即可。比如說(shuō)字母″A″,ASCII碼為65,65的八進(jìn)制和十六進(jìn)制分別為101和x41,所以,字母A可表示為″\101″或″\x41″,對(duì)轉(zhuǎn)義字符應(yīng)認(rèn)真理解。
標(biāo)識(shí)符就是用以標(biāo)識(shí)的符號(hào)。正如現(xiàn)實(shí)生活中給每一個(gè)人都取一個(gè)名字一樣,C語(yǔ)言中的每一個(gè)對(duì)象(如函數(shù)、變量等)都必須取一個(gè)標(biāo)識(shí)符以和其它對(duì)象區(qū)別開。在C語(yǔ)言中,這個(gè)標(biāo)識(shí)符是一個(gè)字符串,這個(gè)字符串的選定有一定的規(guī)則:必須是以字母或下劃線開頭的字母與數(shù)字的序列。除了這個(gè)基本的規(guī)則外,C語(yǔ)言對(duì)標(biāo)識(shí)符的命名還有幾個(gè)限制需加以注意:①長(zhǎng)度最好不要超過(guò)八個(gè)字符。因C中對(duì)標(biāo)識(shí)符只處理前8個(gè)字符,超過(guò)8個(gè)長(zhǎng)度的部分將被C自動(dòng)忽略掉。″ABCDEFGH1″和″ABCDEFH2″是同一個(gè)標(biāo)識(shí)符;②標(biāo)識(shí)符不要與保留字同名,最好也不要與C提供的標(biāo)準(zhǔn)標(biāo)識(shí)符,如庫(kù)函數(shù)重名;③應(yīng)注意C語(yǔ)言對(duì)大小寫字母是敏感的,Abcd和abcd是兩個(gè)不同的標(biāo)識(shí)符。
關(guān)鍵字實(shí)際上就是一些特殊的標(biāo)識(shí)符,又稱保留字,這些保留字不允許用戶對(duì)它重新定義。
1.3頭文件、數(shù)據(jù)說(shuō)明、函數(shù)的開始和結(jié)束標(biāo)志
1.頭文件:也稱為包含文件或標(biāo)題文件,一般放在一個(gè)C語(yǔ)言程序的開頭,用#include″文件名″的格式,其中文件名是頭文件名,一般用.h作為擴(kuò)展名。
2.數(shù)據(jù)說(shuō)明:C語(yǔ)言中的數(shù)據(jù)分常量和變量?jī)煞N。
3.常量:有數(shù)值常量和符號(hào)常量?jī)煞N。
4.數(shù)值常量:可以分為整型常量、實(shí)型常量、浮點(diǎn)型常量和字符常量。
5.符號(hào)常量:用一個(gè)標(biāo)識(shí)符代表的一個(gè)常量,又稱標(biāo)識(shí)符形式的常量。
6.變量:其值可以改變的量,變量名習(xí)慣上用小寫字母表示。
7.標(biāo)識(shí)符:用來(lái)標(biāo)識(shí)變量名、符號(hào)常量名、函數(shù)名、數(shù)組名、類型名、文件名的有效字符序列。
8.標(biāo)識(shí)符的命名規(guī)則:C語(yǔ)言中標(biāo)識(shí)符只能由字母、數(shù)字下劃線三種字符組成,且第一個(gè)字符必須為字母或下劃線。C語(yǔ)言是大小寫敏感語(yǔ)言,即對(duì)大小寫字母認(rèn)為是不同的字符。C語(yǔ)言中標(biāo)識(shí)符的長(zhǎng)度隨系統(tǒng)不同而字,如TURBOC中取前8個(gè)字符,8個(gè)字符后面的字符會(huì)自動(dòng)取消。
1.4數(shù)據(jù)類型
C語(yǔ)言的數(shù)據(jù)類型可以分為三類:
基本類型構(gòu)造類型〖〗派生類型
整型int
字符型char
實(shí)型(浮點(diǎn)型)float
雙精度型double
空類型void結(jié)構(gòu)體struct
公用(聯(lián)合)體union
枚舉型enum
用戶定義類型(使用關(guān)鍵字typedef)數(shù)組類型
指針類型
1.整型常量:C語(yǔ)言中的整型常量有三種形式:十進(jìn)制整型常量、八進(jìn)制整型常量和十六進(jìn)制整型常量。十進(jìn)制整型常量可以用一串連續(xù)的十進(jìn)制數(shù)字來(lái)表示;八進(jìn)制整型常量用數(shù)字0開頭(注意:不是字母O),后面可以跟一串合法的八進(jìn)制數(shù)字;十六進(jìn)制整型常量用0x或0X開頭,后面可以跟一串合法的十六進(jìn)制數(shù)字。
整型常量又有短整型(shortint)、基本整型(int)、長(zhǎng)整型(longint)和無(wú)符號(hào)型(unsinged)之分。
2.整型變量:整型變量也可以分為基本型、短整型、長(zhǎng)整型和無(wú)符號(hào)型四種。分別用int,shortint(或short),longint(或long),unsignedint(unsignedshort,unsignedlong)對(duì)它們進(jìn)行定義。
不同的計(jì)算機(jī)對(duì)上述幾種整型數(shù)據(jù)所占用的內(nèi)存字節(jié)數(shù)和數(shù)值范圍有不同的規(guī)定,以IBM-PC微機(jī)為例,以上各種數(shù)據(jù)所分配的存儲(chǔ)空間和數(shù)值范圍見下表:
類型名所占字節(jié)數(shù)數(shù)值范圍
int4
2
2
4-32768~+32767
-32768~+32767
-2147483648~+2147483647
0~65535
0~65535
0~4294697295
short[int]2
long[int]
unsigned[int]
unsignedshort
unsignedlong2
3.實(shí)型常量:C語(yǔ)言中的實(shí)型常量有兩種表示形式:十進(jìn)制數(shù)形式和指數(shù)形式。在用指數(shù)形式表示實(shí)型數(shù)據(jù)時(shí),字母E可以用小寫e代替,指數(shù)部分必須是整數(shù)(若為正整數(shù)時(shí),可以省略″+″號(hào))。
4.實(shí)型變量:C語(yǔ)言中的實(shí)型變量分為兩種:?jiǎn)尉阮愋秃碗p精度類型,分別用保留關(guān)鍵字float和double進(jìn)行定義。在一般系統(tǒng)中,一個(gè)float型數(shù)據(jù)在內(nèi)存中占4個(gè)字節(jié);一個(gè)double型數(shù)據(jù)占8個(gè)字節(jié)(一個(gè)longdouble型數(shù)據(jù)占16個(gè)字節(jié))。
5.字符常量:C語(yǔ)言的字符常量代表ASCⅡ碼字符集里的一個(gè)字符,在程序中要單引號(hào)括起來(lái)。C語(yǔ)言規(guī)定字符常量可以作為整數(shù)常量來(lái)處理(注:這里的整數(shù)常量指的是相應(yīng)字符的ASCⅡ代碼,因此字符常量可以參與算術(shù)運(yùn)算)。
在C語(yǔ)言中還有一類特殊形式的字符常量,稱為″轉(zhuǎn)義字符″。這類字符常量是以一個(gè)反斜杠開頭的字符序列,但它們只代表某個(gè)特定的ASCⅡ碼字符,在程序中使用這種常量時(shí)要括在一對(duì)單引號(hào)中。
6.字符變量:C語(yǔ)言中的字符變量用關(guān)鍵字char來(lái)定義,每個(gè)字符變量中只能存放一個(gè)字符。在一般系統(tǒng)中,一個(gè)字符變量在計(jì)算機(jī)內(nèi)存中占一個(gè)字節(jié)。與字符常量一樣,字符變量也可以出現(xiàn)在任何允許整型變量參與的運(yùn)算中。
7.字符串常量:C語(yǔ)言中的字符串常量是由一對(duì)雙引號(hào)括起來(lái)的字符序列。注意不要將字符常量和字符串常量混淆。C語(yǔ)言對(duì)字符串常量的長(zhǎng)度不加限制,C編譯程序總是自動(dòng)地在字符串的結(jié)尾加一個(gè)轉(zhuǎn)義字符‘\0’,作為字符串常量的結(jié)束標(biāo)志。C語(yǔ)言中沒(méi)有專門的字符串變量,如果要把字符串存放在變量中,則要用一個(gè)字符型數(shù)組來(lái)實(shí)現(xiàn)。
1.5運(yùn)算符的種類、運(yùn)算優(yōu)先級(jí)、結(jié)合性
C語(yǔ)言中的運(yùn)算符可以歸納下列5類:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、賦值運(yùn)算符、邏輯運(yùn)算符和條件運(yùn)算符。
1.算術(shù)運(yùn)算符有+、-、*、/、%。分別表示算術(shù)加、減、乘、除和取余運(yùn)算。
這些運(yùn)算符需要兩個(gè)運(yùn)算對(duì)象,稱雙目運(yùn)算符。除取余(%)運(yùn)算符外,這些運(yùn)算符的運(yùn)算對(duì)象可以是整型,也可以是實(shí)型數(shù)據(jù)。取余運(yùn)算的運(yùn)算對(duì)象只能是整型。取余運(yùn)算的結(jié)果是兩數(shù)相除后所得的余數(shù)。
″+″和″-″也可以用做單目運(yùn)算符,但作為單目運(yùn)算符時(shí)必須出現(xiàn)在運(yùn)算量的左邊,運(yùn)算量可為整型,也可以為實(shí)型。
C語(yǔ)言中還提供兩個(gè)特殊的單目運(yùn)算符:++和--,這兩個(gè)運(yùn)算符既可以放在運(yùn)算對(duì)象之前,又可以放在運(yùn)算對(duì)象之后。
在C語(yǔ)言中,凡是按C語(yǔ)言語(yǔ)法規(guī)則用常量、變量、函數(shù)調(diào)用以及運(yùn)算符把運(yùn)算數(shù)連接起來(lái)的式子都是合法的表達(dá)式。凡表達(dá)式都有一個(gè)值,即運(yùn)算結(jié)果。
算術(shù)運(yùn)算符和一對(duì)圓括號(hào)組成的算術(shù)表達(dá)式的運(yùn)算優(yōu)先級(jí)是:
()+-*/%+-
單目
雙目
同級(jí)
同級(jí)
同級(jí)
———————————————→
高低
以上所列的運(yùn)算符中,只有單目運(yùn)算符″+″和″-″的結(jié)合性是從右到左,其余運(yùn)算符的結(jié)合性都是從左到右。
算術(shù)表達(dá)式的求值規(guī)律與數(shù)學(xué)中的四則運(yùn)算規(guī)律類似,其運(yùn)算規(guī)律和要求為:
、僭谒阈g(shù)表達(dá)式中,可使用多層括號(hào),但左右括號(hào)必須配對(duì)。運(yùn)算時(shí)從內(nèi)層圓括號(hào)開始,由內(nèi)向外依次計(jì)算表達(dá)式的值。
②在算術(shù)表達(dá)式中,若包含不同優(yōu)先級(jí)的運(yùn)算符,則按運(yùn)算符的優(yōu)先級(jí)別由高到低進(jìn)行,若表達(dá)式中運(yùn)算符的級(jí)別相同,則按運(yùn)算符的結(jié)合方向進(jìn)行。
2.在算術(shù)表達(dá)式中,C語(yǔ)言提供6種關(guān)系運(yùn)算符:<,>,<=,>=,==,!=。前四種運(yùn)算符(<,>,<=,>=)的優(yōu)先級(jí)相同,后兩種的優(yōu)先級(jí)也相同,并且前四種的優(yōu)先級(jí)高于后兩種。
關(guān)系運(yùn)算符屬于雙目運(yùn)算符,其結(jié)合方向?yàn)樽宰笾劣摇?/p>
用關(guān)系運(yùn)算符可以將兩個(gè)表達(dá)式(包括算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、賦值表達(dá)式和字符表達(dá)式)連接起來(lái)構(gòu)成關(guān)系表達(dá)式。
關(guān)系運(yùn)算結(jié)果1或0。在C語(yǔ)言中沒(méi)有邏輯值,用0代表″假″,用1代表″真″。
3.邏輯運(yùn)算符C語(yǔ)言提供三種邏輯運(yùn)算符:(邏輯與)、‖(邏輯或)、!(邏輯非)。其中前兩種為雙目運(yùn)算符,第三種是單目運(yùn)算符。
關(guān)系運(yùn)算符中的和‖運(yùn)算符的優(yōu)先級(jí)相同,!運(yùn)算符的優(yōu)先級(jí)高于前兩個(gè)。
算術(shù)運(yùn)算符、邏輯運(yùn)算符和關(guān)系運(yùn)算符三者間的優(yōu)先級(jí)關(guān)系為:
!→算術(shù)運(yùn)算符→關(guān)系運(yùn)算符→‖
————————————————→
高低
用邏輯運(yùn)算符將關(guān)系表達(dá)式或任意數(shù)據(jù)類型(除void外)的數(shù)據(jù)連接起來(lái)就構(gòu)成了邏輯表達(dá)式。邏輯表達(dá)式的值是0或1。
4.賦值運(yùn)算符在C語(yǔ)言中,″=″稱為賦值運(yùn)算符。由賦值運(yùn)算符組成的表達(dá)式稱為賦值表達(dá)式。表達(dá)式的形式為:
變量=表達(dá)式
賦值符號(hào)左邊必須是一個(gè)代表某一存儲(chǔ)單元的的變量名,賦值號(hào)的右邊必須是C語(yǔ)言中合法的表達(dá)式。
賦值運(yùn)算的功能是先計(jì)算右邊表達(dá)式的值,然后再把此值賦給賦值號(hào)左邊的變量,確切地說(shuō),是把數(shù)據(jù)放入以該變量為標(biāo)識(shí)的存儲(chǔ)單元中去。
5.條件運(yùn)算符C語(yǔ)言中把″?:″稱作條件運(yùn)算符。條件運(yùn)算符要求有三個(gè)運(yùn)算對(duì)象,它是C語(yǔ)言中唯一的一個(gè)三目運(yùn)算符。由條件運(yùn)算符構(gòu)成的條件表達(dá)式的一般形式為:
表達(dá)式1?表達(dá)式2:表達(dá)式3
當(dāng)表達(dá)式1的值為非零時(shí),取表達(dá)式2的值為此條件表達(dá)式的值;當(dāng)表達(dá)式1的值為零時(shí),取表達(dá)式3的值為此條件表達(dá)式的值。
條件運(yùn)算符具有自右向左的結(jié)合性,其優(yōu)先級(jí)別比關(guān)系運(yùn)算符和算術(shù)運(yùn)算符都低。
1.6不同類型數(shù)據(jù)間的轉(zhuǎn)換與運(yùn)算
C語(yǔ)言中不同類型的數(shù)據(jù)間的轉(zhuǎn)換是由系統(tǒng)自動(dòng)進(jìn)行的,其轉(zhuǎn)換規(guī)律是:
↑double←float
|↑
|long
|↑
|unsigned
|↑
|int←char,short
圖中向左的箭頭表示必定的轉(zhuǎn)換,如字符型和short型必定轉(zhuǎn)換為int型,float型在運(yùn)算時(shí)先轉(zhuǎn)為double型(即使是兩個(gè)float型相加也都先轉(zhuǎn)換成double型,然后再相加)。向上的箭頭表示當(dāng)運(yùn)算對(duì)象為不同類型時(shí)的轉(zhuǎn)換的方向。
1.7表達(dá)式類型和求值規(guī)則
1.C語(yǔ)言表達(dá)式可以歸納為以下幾種類型:賦值表達(dá)式、算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、條件表達(dá)式和逗號(hào)表達(dá)式。
2.賦值表達(dá)式是指用賦值運(yùn)算符(=)組成的表達(dá)式。
3.算術(shù)表達(dá)式是指用算術(shù)運(yùn)算符和一對(duì)圓括號(hào)將運(yùn)算量連接起來(lái)的符合C語(yǔ)法的表達(dá)式。
4.關(guān)系表達(dá)式是指用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來(lái)的式子。
5.邏輯表達(dá)式是指用邏輯運(yùn)算符將關(guān)系表達(dá)式或任意數(shù)據(jù)類型(void型除外)連接起來(lái)的式子。
6.條件表達(dá)式是指用條件運(yùn)算符連接起來(lái)的表達(dá)式。
7.逗號(hào)表達(dá)式是指用逗號(hào)運(yùn)算符連接起來(lái)的表達(dá)式
【C語(yǔ)言初步認(rèn)識(shí)】相關(guān)文章:
初步剖析C語(yǔ)言編程中的結(jié)構(gòu)體03-20
C語(yǔ)言考點(diǎn)精選03-18
C語(yǔ)言試題03-28
C語(yǔ)言的應(yīng)用12-12
C語(yǔ)言的結(jié)構(gòu)12-12
什么是C語(yǔ)言03-19
C語(yǔ)言試題(精選)12-05
C語(yǔ)言和C++的分別11-26