語言基本概念_第1頁
語言基本概念_第2頁
語言基本概念_第3頁
語言基本概念_第4頁
語言基本概念_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第2章 C語言基本概念2.1 初識“Hello world”程序為紀(jì)念C語言的設(shè)計者,第一個程序范例選自C語言的定義文檔Brian Kernighan和Dennis Ritchie合著的The C Programming Language。該范例是“Hello world”程序,它是所有C程序員共有的財富,而你也即將成為其中的一員?!纠?-1】Hello程序/* *File:hello.c *This program prints the message "Hello world" on the screen. */#include <stdio.h>main(

2、) printf("Hello,world.n");該程序作為一個文件存儲在你所用的計算機(jī)系統(tǒng)的永久存儲器中。文件名為hello.c,其中.c說明該文件為C語言源程序。下面介紹hello.c程序的組成部分:程序注釋、庫包含和主函數(shù)。 程序注釋C語言中,注釋是在/*和*/之間的所有文字,可以占連續(xù)的幾行。例2.1中的注釋描述了該程序的作用。注釋是寫給人看的,而不是寫給計算機(jī)的。注釋向其他程序員傳遞該程序的有關(guān)信息。當(dāng)C語言編譯器將程序轉(zhuǎn)換為可由機(jī)器執(zhí)行的形式時,注釋被完全忽略。當(dāng)程序越來越復(fù)雜時,讀者會發(fā)現(xiàn)給出合適的注釋是使程序易讀的最好方法之一。 庫包含(預(yù)處理指令)C語言

3、只明確定義了一小部分操作,在計算機(jī)程序中許多必要的操作并不是由C直接定義的(如C語言中沒有內(nèi)置的“讀”或“寫”命令),實際的做法是,在每個C實現(xiàn)中都包含了一些使用函數(shù)和符號的集合,稱之為庫。C的ANSI(American National Standards Institute)標(biāo)準(zhǔn)要求在每個C實現(xiàn)中提供特定的標(biāo)準(zhǔn)庫。C系統(tǒng)可以通過提供附加庫來擴(kuò)展可執(zhí)行操作的數(shù)量,編程者也可以產(chǎn)生函數(shù)庫。每個庫都擁有一個文件名以.h結(jié)尾的標(biāo)準(zhǔn)頭文件,如stdio.h。#include <stdio.h>這條預(yù)處理指令說明,在編譯前把stdio.h中的信息“包含”到程序中。該指令通知預(yù)處理器,程序中

4、用到的某些內(nèi)容,如printf,可以在標(biāo)準(zhǔn)頭文件stdio.h中找到。Stdio.h中包含了關(guān)于C標(biāo)準(zhǔn)輸入/輸出庫的信息。注意:l 對每一個庫使用一行#includel 預(yù)處理指令結(jié)束時沒有“;”預(yù)處理指令詳細(xì)內(nèi)容將在后面章節(jié)介紹。 主函數(shù)1. 函數(shù)術(shù)語“函數(shù)”來源于數(shù)學(xué)。在數(shù)學(xué)中函數(shù)是一條根據(jù)一個或多個給定參數(shù)進(jìn)行數(shù)值計算的規(guī)則:f(x) = x + 1g(y,z) = y zC語言對“函數(shù)”的使用更加寬松。C語言中,函數(shù)是一系列獨立的程序步驟,將這些程序步驟集合在一起,并且賦予了一個名字,就形成了一個函數(shù)。如:main() 語句;一個C程序是一個函數(shù)的集合。函數(shù)分為兩類:程序員編寫的函數(shù);

5、由C語言的實現(xiàn)所提供的函數(shù)。后一種函數(shù)也叫庫函數(shù),因為這些函數(shù)屬于一個函數(shù)的“庫”,而這個庫是由編譯器提供的。每個C程序必須有一個main函數(shù),在執(zhí)行程序時系統(tǒng)會自動調(diào)用main函數(shù),即該函數(shù)是程序的入口。2. 語句函數(shù)所執(zhí)行的步驟在中列出,這些步驟稱為“語句”。這些語句共同組成函數(shù)的主體。大多數(shù)函數(shù)都有幾個連續(xù)執(zhí)行的語句。當(dāng)運行C語言程序時,計算機(jī)執(zhí)行main函數(shù)主體中包含的語句。printf("Hello,world.n");該語句用到了printf函數(shù)。此函數(shù)代表一組操作。當(dāng)想要調(diào)用這些操作時,只要使用其函數(shù)名就可以一起引用此函數(shù)。在程序設(shè)計中,通過使用函數(shù)名來調(diào)用該

6、函數(shù)的行為稱為調(diào)用函數(shù)。printf("Hello,world.n")就是對函數(shù)printf的調(diào)用。該函數(shù)調(diào)用的結(jié)尾加上“;”就構(gòu)成了一條語句。本節(jié)小結(jié)1.C程序的典型結(jié)構(gòu)注釋庫包含 main() 語句;2.每個程序都應(yīng)有注釋,注釋可以有效增強(qiáng)程序的可讀性。3.庫包含4.每個C程序是函數(shù)的集合,且每個C程序有且僅有一個main函數(shù),它是程序的入口。5.語句2.2 求圓周長的程序為使大家對C語言程序的工作過程有更好的了解,現(xiàn)在來看一個稍復(fù)雜的例子?!纠?-2】使用C 語言編程,程序根據(jù)用戶輸入的某圓的半徑值,求該圓的周長?!痉治觥扛鶕?jù)數(shù)學(xué)知識可知,c = 2 × P

7、I × r 根據(jù)題目要求可知流程圖如下:l 確定輸出什么圓周長l 確定輸入什么圓半徑開始輸入rL = 2 * PI * r 輸出 L結(jié)束引入常量和變量概念:根據(jù)數(shù)學(xué)知識和題目要求,2、PI為常量,在整個程序運行期間不變;S和r是變量,r隨著用戶的輸入而不同,S隨著輸入的r不同而不同。引入數(shù)據(jù)類型:數(shù)據(jù)類型用來說明變量所存儲的數(shù)據(jù)的種類。半徑r取整型int,圓周長L取實型double?!緜未a】#include <stdio.h>main() 定義變量; 輸入半徑; 計算周長; 輸出周長;【源代碼】#include <stdio.h>main() int rad

8、ius; double c; printf(“Plesae input the radius:”); scanf(“%d”,&radius); c = 2 * 3.14 * radius; printf(“The c is %f .n”,c); 2.2.1 初識變量和常量1. 變量變量(Variable)是一些在編寫程序時值未知的數(shù)據(jù)的存放處。例如,在編程時,程序員尚不知道用戶要對半徑為多大的圓求周長。當(dāng)程序運行時,用戶才會輸入半徑,程序才求出周長。為了在程序中引用這些目前尚未確定的數(shù),我們可以創(chuàng)建一個變量來保存這些需要記住的值,并給該變量命名。一旦要用到它包含的值時,可使用其變量名。

9、變量的名稱要用心選擇,以便將來閱讀程序的程序員能容易地分辨出每個變量的作用。本程序中,變量radius代表半徑,變量c代表周長。在C語言中,使用變量前,必須先聲明該變量。聲明一個變量就是告之編譯器引用了一個新的變量名,并指定了該變量可以保存的數(shù)據(jù)類型。例如:int radius;2. 常量常量是一種在程序中保持固定類型和固定值的數(shù)據(jù)。例如,本程序中的2,3.14。2.2.2 輸入階段本程序在輸入階段必須要求用戶輸入一個半徑值保存在radius變量中。變量值的輸入過程包括2步。(1)程序應(yīng)在屏幕上顯示一個消息以使用戶了解程序需要什么,這種類型的消息通常稱為提示消息。例如:printf(“Ples

10、ae input the radius:”);(2)讀取用戶輸入的數(shù)據(jù)。例如:scanf(“%d”,&radius);C中所有的輸入輸出操作都由稱作輸入輸出函數(shù)來完成。本部分將介紹輸入函數(shù)scanf,它是C的標(biāo)準(zhǔn)輸入輸出庫中的一部分,可以通過預(yù)處理指令#include <stdio.h>來訪問。scanf函數(shù)用來把從輸入設(shè)備輸入的數(shù)據(jù)復(fù)制到變量中。該函數(shù)調(diào)用包含函數(shù)名和函數(shù)參數(shù)兩部分。函數(shù)參數(shù)由格式字符串(包含在“”)和輸入列表組成。例:int sum;scanf(“%d”, &sum);在程序執(zhí)行時,scanf函數(shù)將程序用戶在鍵盤上鍵入的數(shù)據(jù)復(fù)制到內(nèi)存中。關(guān)于sc

11、anf函數(shù)的具體說明見。2.2.3 計算階段本程序的計算階段由計算圓周長組成。在程序設(shè)計中,計算是通過寫一個表達(dá)式來指定的,該表達(dá)式指定了必須的操作步驟。表達(dá)式的結(jié)構(gòu)由賦值語句存儲于一個變量中,以便程序后面的部分使用該結(jié)果。本章2.4節(jié)將詳細(xì)定義表達(dá)式的結(jié)構(gòu)。然而,即使沒有一個完整的定義,理解C語言的表達(dá)式如何工作也很容易,它與傳統(tǒng)的數(shù)學(xué)表達(dá)式非常類似:c = 2 * 3.14 * radius;2.2.4 輸出階段程序的輸出階段由顯示計算結(jié)果組成。例如:printf(“The c is %f .n”,c);printf函數(shù)在屏幕上顯示參數(shù)字符串中的每一個字符。但到了%處就有所不同了。%及其后

12、面的字母f稱為格式碼。在本例中,格式碼是%f。printf函數(shù)的格式碼的作用就是作為值的占位符,在輸出過程中,值將被插入到該位置。格式碼中的字母用于指定輸出格式。本例中的%f表示輸出結(jié)果應(yīng)顯示為浮點數(shù)。此時的程序?qū)@示以下信息:The c is .其中,下劃線部分將由一個浮點數(shù)代替。要想知道顯示的是什么樣的整數(shù),printf函數(shù)取調(diào)用時傳來的第二個參數(shù)值,本例中是變量c。它的值顯示在屏幕上,換行符使光標(biāo)移至下一行。2.3 變量、常量和數(shù)據(jù)類型2.3.1 變量和常量定義1變量大多數(shù)程序在產(chǎn)生輸出之前往往需要執(zhí)行一系列的計算,因此需要在程序執(zhí)行過程中有一種臨時存儲數(shù)據(jù)的方法。C語言中的這類存儲單元

13、稱為變量。變量是程序執(zhí)行過程中可以改變、可以賦值的量。具體說,變量是用于存儲程序的輸入數(shù)據(jù)和計算結(jié)果的存儲單元。2常量常量是一種在程序中保持固定類型和固定值的數(shù)據(jù)。2.3.2 數(shù)據(jù)類型為了能在各種應(yīng)用中使用,程序必須能夠存儲多種不同類型的數(shù)據(jù)。程序中每一個變量都必須有一個類型。類型用來說明變量所存儲的數(shù)據(jù)的種類。C語言擁有廣泛多樣的類型。無論何時使用數(shù)據(jù),無論使用的是整數(shù)、小數(shù)還是字符,C編譯器都應(yīng)該了解其數(shù)據(jù)類型。從整體上講,數(shù)據(jù)類型是一組值及這組值上的一組操作。數(shù)據(jù)類型包括:l 一組值,即值的集合:n 例如:整型數(shù)據(jù)的集合就是機(jī)器硬件所能構(gòu)造的所有整數(shù)(,-1,0,1,2,.)n 例如:字

14、符型數(shù)據(jù)的集合就是鍵盤上出現(xiàn)的或可顯示在屏幕上的符號的集合l 這組值上的操作集合:n 例如:給出兩個整數(shù),可以將它們相加、相乘等n 例如:給出兩個字符數(shù)據(jù),可以對兩者進(jìn)行比較,看它們字母順序如何n 操作必須與值的集合項對應(yīng)。本節(jié)只限定介紹int、double和char數(shù)據(jù)類型,詳細(xì)內(nèi)容將在后面章節(jié)介紹。數(shù)據(jù)類型的對象可以是變量或常量。1. int數(shù)據(jù)類型數(shù)學(xué)中整數(shù)就是非分?jǐn)?shù)和小數(shù)的數(shù)。Int類型在C語言中代表整數(shù)。因為一個存儲單元的大小是有限的,所以不是所有的整數(shù)都可以由int型表示。Int型數(shù)據(jù)通常與程序的執(zhí)行環(huán)境的字長相同,對于16位環(huán)境,如DOS下的TC2.0,int型數(shù)據(jù)在內(nèi)存中占16

15、位,即2個字節(jié);對于大多數(shù)32位環(huán)境,如windows XP等,int型數(shù)據(jù)在內(nèi)存中占32位,即4個字節(jié)。VC6中int型數(shù)據(jù)在內(nèi)存中占4個字節(jié),取值范圍是-2147483648至2147483647整數(shù)可以存儲在int型變量中,進(jìn)行常用的算術(shù)運算,加減乘除等,還可以比較兩個整數(shù)的大小。2. double數(shù)據(jù)類型實數(shù)擁有一個整數(shù)部分和一個小數(shù)部分,并由小數(shù)隔開。C中數(shù)據(jù)類型double用于表示實數(shù),如3.14159、0.005、15.8。實數(shù)可以存儲在double型變量中,進(jìn)行常用的算術(shù)運算,還可以比較兩個整數(shù)的大小。VC6中double型數(shù)據(jù)在內(nèi)存中占8個字節(jié),15位有效數(shù)字,數(shù)值范圍為-1

16、.7*10-308至1.7*10308數(shù)據(jù)類型double是實數(shù)的一個抽象,因為它不包括所有的實數(shù),一些實數(shù)太大或太小,還有一些實數(shù)不能在大小有限的存儲單元內(nèi)精確表示。然而,C中絕對可以表示足夠多的實數(shù)來執(zhí)行大部分具有相當(dāng)精度的計算。3. char數(shù)據(jù)類型char類型表示一個字符值字母、數(shù)字或?qū)S梅枴C總€char型數(shù)據(jù)都包含在單引號內(nèi),如:A z 5 * 字符可以存儲在char型變量中,并可以比較字符數(shù)據(jù)的大小。char型數(shù)據(jù)占1字節(jié)。C語言將char型數(shù)據(jù)對應(yīng)的ASCII碼值保存在1個字節(jié)的內(nèi)存空間中,所以C語言甚至允許對char型數(shù)據(jù)進(jìn)行算術(shù)運算,但必須小心使用。2.3.3 變量聲明與初

17、始化變量(Variable)是一個值的存放處,它有三個重要屬性:名稱、值和數(shù)據(jù)類型。為了理解名稱、值和數(shù)據(jù)類型三者之間的關(guān)系,可以將變量看做一個外部貼有標(biāo)簽的盒子。l 名稱:變量的名字寫在標(biāo)簽上,以區(qū)分不同的盒子l 值:變量的值對應(yīng)于盒子內(nèi)裝的東西。l 數(shù)據(jù)類型:變量類型表明什么類型的數(shù)據(jù)可存儲在盒子中。盒子標(biāo)簽上的名稱從不改變,但可以經(jīng)常從盒子中取出值或放入新值。在C語言中,使用變量之前,必須先聲明該變量。聲明(declaring)一個變量就是告訴C編譯器引用了一個新的變量名,并指定該變量可以保存的數(shù)據(jù)類型。變量定義語法格式:類型關(guān)鍵字 變量名1,變量名2;例:int count;doubl

18、e area;char first_initial;int i,j,k;【說明】l 使用變量必須“先定義后使用”l 變量名是由用戶定義的標(biāo)識符,它的構(gòu)成應(yīng)符合以下規(guī)則n 名稱必須以字母或下劃線字符開頭。n 名稱的其他字符必須是字母、數(shù)字或下劃線,不得使用空格和其他特殊符號n 名稱不可以是關(guān)鍵字。n 變量名可以為任意長度,但C編譯器只認(rèn)為前31個字符有意義。n 在C語言中,變量名中出現(xiàn)的大寫和小寫字母被視為不同的字符。n 變量名應(yīng)使讀者易于明白其中存儲的值是什么。實例操作【例2-2】使用C 語言編程,程序根據(jù)用戶輸入的某圓的半徑值,求該圓的周長。#include <stdio.h>m

19、ain()int radius;double c; 輸入半徑; 計算周長; 輸出周長;在定義變量的同時可以為其賦初值,即C語言允許在定義變量的同時對變量進(jìn)行初始化。例:int sum = 0;double source = 87.3;char grade = A 定義但未賦初值的變量中,一般存放的是隨機(jī)數(shù)(靜態(tài)變量除外)。2.3.4 常量常量是一種在程序中保持固定類型和固定值的數(shù)據(jù)。1.整型常量計算機(jī)中的數(shù)據(jù)都以二進(jìn)制形式存儲。在C程序中,為便于表示和使用,整型常量可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制三種形式來表示,編譯系統(tǒng)會自動將其轉(zhuǎn)換為二進(jìn)制形式存儲。C語言的編譯器將整型常量按照int

20、型變量的長度來存儲。2.實型常量由于計算機(jī)中的實型數(shù)以浮點形式表示,即小數(shù)點位置可以是浮動的,因此實型常量可以稱為實數(shù)或浮點數(shù)。在C程序中,實型常量的表示方法如下:(1)十進(jìn)制小數(shù)形式(2)指數(shù)形式實型常量在存儲時按double類型存儲,即占8個字節(jié)。3.字符型常量C語言中的字符常量是由單引號括起來的一個字符。對于某些控制字符(如回車符、換行符等)無法通過鍵盤輸入,因此,C語言還引入了另外一種特殊形式的字符常量轉(zhuǎn)義字符。4.字符串常量字符串常量是由一對雙引號括起來的一個字符序列。為便于C程序判斷字符串是否結(jié)束,系統(tǒng)對每個用雙引號括起來的字符串常量都添加一個字符串結(jié)束標(biāo)識0。它不引起任何控制動作

21、,也不顯示。2.4 運算符與表達(dá)式當(dāng)希望程序執(zhí)行計算時,應(yīng)寫出一個表達(dá)式以指定必要的操作,其形式類似于數(shù)學(xué)表達(dá)式。例:n1 + n2C語言中的表達(dá)式由項和運算符組成。l 項:表示一個單獨的數(shù)據(jù)值,如n1 ,n2n 常量n 變量n 函數(shù)調(diào)用n 括號中的表達(dá)式l 運算符:一個表示運算的字符或一個字符序列,如 +,-,*,/,+,-當(dāng)程序運行時,執(zhí)行表達(dá)式中每一個特定操作的過程稱為求值。當(dāng)對表達(dá)式進(jìn)行求值時,每一個運算符都對兩邊項所表示的數(shù)據(jù)值進(jìn)行運算。當(dāng)所有運算符求值完畢后,剩下的一個數(shù)據(jù)就是計算結(jié)果。2.4.1 算術(shù)運算符與算術(shù)表達(dá)式1. 算術(shù)運算符算術(shù)運算符主要有+ - * / %(取余運算)

22、2. 操作對象算法運算符的操作符可能是常量、變量或其他算術(shù)表達(dá)式。例:3.14 * 2 * 25 + count 34 * num 35 % 2 (值為1)3. 操作數(shù)數(shù)據(jù)類型運算符+ - * /既允許操作數(shù)是int型或double型,或允許兩者的混合。當(dāng)把int型操作數(shù)和double型操作數(shù)混合在一起使用時,運算結(jié)果是double型。運算符%可以與整數(shù)操作數(shù)一起使用,用于找出普通除法的余數(shù)。例:2 + 7 (值為9)2 + 7.0 (值為9.0)6 * 3.2 (值為19.2)5 / 2 (值為2)2 / 5 (值為0)2.0 / 5 (值為0.4)5 % 2(值為1)【注意】l 當(dāng)兩個操作

23、數(shù)都是整數(shù)時,/ 通過丟掉分?jǐn)?shù)部分的方法截取結(jié)果。l %要求整數(shù)操作數(shù);如果兩個操作數(shù)中有一個不是整數(shù),那么程序?qū)o法編譯通過。l %左側(cè)的操作數(shù)為被除數(shù),右側(cè)的操作數(shù)為除數(shù),運算的結(jié)果為整除后的余數(shù),余數(shù)的符號與被除數(shù)的符號相同。4. 運算符的優(yōu)先級在C語言中,優(yōu)先級順序由符合標(biāo)準(zhǔn)數(shù)學(xué)用法的一系列排序規(guī)則決定,稱之為優(yōu)先級法則。對算術(shù)表達(dá)式來說,常見的規(guī)則有:(1)C編譯器首先執(zhí)行任何一元運算符(如-)(2)C編譯器接下來執(zhí)行乘法運算符* / %。若兩個乘法運算符作用于同一操作數(shù),則優(yōu)先執(zhí)行最左邊的運算符。(3)再接下來執(zhí)行加法運算符+ -。同樣,若兩個加法運算符作用于同一操作數(shù),則優(yōu)先執(zhí)行

24、最左邊的運算符。5.運算符的結(jié)合性當(dāng)一個表達(dá)式中出現(xiàn)不同類型的運算符時,首先按照他們的優(yōu)先級順序進(jìn)行運算。當(dāng)兩類運算符的優(yōu)先級相同時,則要根據(jù)運算符的結(jié)合性確定運算順序。結(jié)合性表明運算時的結(jié)合分向。算術(shù)運算符的結(jié)合性為左結(jié)合。2.4.2賦值運算符與賦值表達(dá)式1. 簡單賦值一旦計算出表達(dá)式的值就常常需要把這個值存儲在變量中,以便以后使用。C語言中,簡單賦值運算符(=)可以用于此目的。簡單賦值運算符(=)與數(shù)學(xué)中的等號不同,所以應(yīng)將它讀作“變?yōu)椤?、“賦值為”。在數(shù)學(xué)領(lǐng)域,=表示兩個值之間的關(guān)系,但是在C中它表示由計算機(jī)執(zhí)行的一個操作。變量的值是用賦值表達(dá)式獲得的。C語言中的賦值表達(dá)式形式如下:變量

25、 = 表達(dá)式在寫賦值表達(dá)式時,等號的左邊可以是任何變量名,等號右邊可以是任何表達(dá)式?!咀⒁狻縧 =右側(cè)的表達(dá)式的值會賦給 =左側(cè)的變量,變量原來的值就消失了。賦值表達(dá)式最后以;結(jié)束就形成了賦值語句。變量 = 表達(dá)式;【例】int item,sum;sum = 5;item = 10;sum = item + sum;實例操作【例2-2】使用C 語言編程,程序根據(jù)用戶輸入的某圓的半徑值,求該圓的周長。#include <stdio.h>main() int radius,l; 輸入半徑; l = 2 * 3.14 * radius; 輸出周長;2. 復(fù)合賦值例:假設(shè)變量balance

26、保存某人銀行賬戶的余額,他想往賬戶中存一筆錢,數(shù)額保存在變量desposit中。新的余額由表達(dá)式balance+desposit給出。于是可以寫出如下賦值語句:newbalance = balance + desposit;然而在大多數(shù)情況下,人們不愿用一個新變量來存儲結(jié)果。存錢的效果就是改變銀行賬戶中的余額,我們可以把balance+desposit的值存入變量balance中,賦值語句改為:balance = balance + desposit;像這樣對一個變量執(zhí)行一些操作并將結(jié)果重新存入變量的語句在程序設(shè)計時使用十分頻繁,因此C語言的設(shè)計者特意加入了它的一種習(xí)慣的簡記方式,即將bala

27、nce = balance + desposit;寫成balance += desposit;凡是二元運算符,都可以與賦值符(=)一起組合成復(fù)合賦值符。C語言規(guī)定可以使用10種復(fù)合賦值運算符,即:+= -= *= /= %= << >>= &= = |=3. 賦值運算符的結(jié)合性賦值運算符的結(jié)合性是自右向左。2.4.3自增和自減運算符C語言提供了自增運算符(+)與自減運算符(-)。(1)自增運算符+i+ :在使用i之后,使i的值加1 +i :在使用i之前,先使i的值加1例:int m;int n = 3;m = n+ m = +n (2)自減運

28、算符i- :在使用i之后,使i的值減1 -i :在使用i之前,先使i的值減1例:int m;int n = 3;m = n- m = -n 注意:l 自增和自減運算符只能用于變量。l 自增和自減運算符的優(yōu)先級與負(fù)號優(yōu)先級相同。l 自增和自減的結(jié)合方向是“自右至左”。例:int m;int n = 3;m = -n+ 提示:良好的程序設(shè)計風(fēng)格提倡在一行語句中,一個變量最多只出現(xiàn)一次增1或減1運算。因為過多的+、-混合運算,會導(dǎo)致程序的可讀性變差。同時,C語言規(guī)定表達(dá)式中的子表達(dá)式以未定順序求值,這就允許編譯程序自由重排表達(dá)式的順序,以便產(chǎn)生最優(yōu)代碼。這也導(dǎo)致相同的表

29、達(dá)式用不同的編譯器編譯時,可能產(chǎn)生不同的運算結(jié)果。例如:Sum = (+a)+(+a);Printf(“%d%d”,a,a+,a+);建議不要采用。2.4.4強(qiáng)制轉(zhuǎn)換運算符使用強(qiáng)制轉(zhuǎn)換運算符可以把表達(dá)式的結(jié)果硬性轉(zhuǎn)換為一個用戶指定的類型值。(類型)表達(dá)式例:Int n;Double d;d = (double)n / 2 2.4.5求字節(jié)數(shù)運算符不能對變量所占的字節(jié)數(shù)想當(dāng)然,要想獲知int型數(shù)據(jù)的準(zhǔn)確字節(jié)數(shù)信息,可以使用sizeof運算符計算其在內(nèi)存中所占的字節(jié)數(shù)。sizeof(表達(dá)式)其中,表示可以是變量名、常量以及數(shù)據(jù)類型名。該運算符的功能:求表達(dá)式中變量名所代表的內(nèi)存單元所占的

30、字節(jié)數(shù);或求表達(dá)式中常量所占內(nèi)存單元的字節(jié)數(shù);或求表達(dá)式中的數(shù)據(jù)類型表示的數(shù)據(jù)在內(nèi)存單元中所占的字節(jié)數(shù)。2.5 格式化輸入與輸出數(shù)據(jù)可以以兩種方式存儲在內(nèi)存中,賦值給變量或利用函數(shù)將數(shù)據(jù)從輸入設(shè)備復(fù)制到變量中。數(shù)據(jù)從輸入設(shè)備傳送到內(nèi)存的指令稱為輸入操作。當(dāng)程序執(zhí)行時,會進(jìn)行計算,并將結(jié)果保存到內(nèi)存中。程序結(jié)果可以通過輸出操作顯示給程序用戶。顯示存儲在內(nèi)存中的信息的指令為輸出操作。C中所有的輸入輸出操作都由稱作輸入輸出函數(shù)來完成。本節(jié)將介紹輸入函數(shù)scanf和輸出函數(shù)printf。它們是C的標(biāo)準(zhǔn)輸入輸出庫中的一部分,可以通過預(yù)處理指令#include <stdio.h>來訪問。2.5.1printf函數(shù)pr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論