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