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

下載本文檔

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

文檔簡介

1、文檔來源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持.第2章C語言基本概念2.1 初識(shí) Hello world ”程序?yàn)榧o(jì)念C語言的設(shè)計(jì)者,第一個(gè)程序范例選自 C語言的定義文檔一一Brian Kernighan和 Dennis Ritchie合著的 The C Programming Language 該范例是 Hello world”程序,它是所有 C 程序員共有的財(cái)富,而你也即將成為其中的一員?!纠?-1】 Hello程序 /*File:hello.c*This program prints the message Hello world on the screen.*/#incl

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

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

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

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

6、名來調(diào)用 該函數(shù)的行為稱為調(diào)用函數(shù)。printf(Hello,world.n)就是對(duì)函數(shù)printf的調(diào)用。該函數(shù)調(diào)用的 結(jié)尾加上“;”就構(gòu)成了一條語句。本節(jié)小結(jié).C程序的典型結(jié)構(gòu)注釋庫包含main () 語句;L 文檔來源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持.每個(gè)程序都應(yīng)有注釋,注釋可以有效增強(qiáng)程序的可讀性。.庫包含4,每個(gè)C程序是函數(shù)的集合,且每個(gè) C程序有且僅有一個(gè) main函數(shù),它是程序的入口。.語句.2.2求圓周長的程序輸入r為使大家對(duì)C語片程序的工作過程好的了解,現(xiàn)在來看一個(gè)稍復(fù)雜的例子。【例2-2】使用C語言編程:程序根訓(xùn)用戶輸入的某圓的半徑值,求該圓的周長。L

7、= 2 * PI * r開始lx PI x rL分析根據(jù)數(shù)學(xué)知識(shí)可知,c = 2 根據(jù)題目要求可知流程確定輸出什么確定輸入什么引入常量和變量概念:根據(jù)數(shù)學(xué)知識(shí)和題目要求,2、PI為常量,在整個(gè)程序運(yùn)行期間 不變;S和r是變量,r隨著用戶的輸入而不同,S隨著輸入的r不同而不同。引入數(shù)據(jù)類型:數(shù)據(jù)類型用來說明變量所存儲(chǔ)的數(shù)據(jù)的種類。半徑 r取整型int,圓周長L取實(shí)型double【偽代碼】#include main()定義變量;輸入半徑;計(jì)算周長;輸出周長;【源代碼】#include main()int radius ;double c;printf( Plesae input the radiu

8、s: );scanf( “d”,&radius);c = 2 * 3.14 * radius ;printf( The c is %f .n ” ,c);2.2.1初識(shí)變量和常量變量(Variable)是一些在編寫程序時(shí)值未知的數(shù)據(jù)的存放處。例如,在編程時(shí),程序員 尚不知道用戶要對(duì)半徑為多大的圓求周長。當(dāng)程序運(yùn)行時(shí),用戶才會(huì)輸入半徑,程序才求出 周長。為了在程序中引用這些目前尚未確定的數(shù),我們可以創(chuàng)建一個(gè)變量來保存這些需要記 住的值,并給該變量命名。一旦要用到它包含的值時(shí),可使用其變量名。變量的名稱要用心 選擇,以便將來閱讀程序的程序員能容易地分辨出每個(gè)變量的作用。本程序中,變量 radius

9、 代表半徑,變量c代表周長。在C語言中,使用變量前,必須先聲明該變量。聲明一個(gè)變量就是告之編譯器引用了一 個(gè)新的變量名,并指定了該變量可以保存的數(shù)據(jù)類型。例如:int radius;常量是一種在程序中保持固定類型和固定值的數(shù)據(jù)。例如,本程序中的2, 3.14。輸入階段本程序在輸入階段必須要求用戶輸入一個(gè)半徑值保存在radius變量中。變量值的輸入過程包括2步。(1)程序應(yīng)在屏幕上顯示一個(gè)消息以使用戶了解程序需要什么,這種類型的消息通常稱為提示消息。例如:printf( Plesae input the radius: );(2)讀取用戶輸入的數(shù)據(jù)。例如:scanf( “d”,&radius);

10、C中所有的輸入輸出操作都由稱作輸入輸出函數(shù)來完成。本部分將介紹輸入函數(shù)scanf,它是C的標(biāo)準(zhǔn)輸入輸出庫中的一部分,可以通過預(yù)處理指令#include 來訪問。scanf函數(shù)用來把從輸入設(shè)備輸入的數(shù)據(jù)復(fù)制到變量中。該函數(shù)調(diào)用包含函數(shù)名和函數(shù)參數(shù)兩部分。函數(shù)參數(shù)由格式字符串(包含在)和輸入列表組成。例:int sum;scanf( %d”, &sum);在程序執(zhí)行時(shí),scanf函數(shù)將程序用戶在鍵盤上鍵入的數(shù)據(jù)復(fù)制到內(nèi)存中。關(guān)于scanf函數(shù)的具體說明見。計(jì)算階段文檔來源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持本程序的計(jì)算階段由計(jì)算圓周長組成。在程序設(shè)計(jì)中,計(jì)算是通過寫一個(gè)表達(dá)式來指定

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

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

13、類型和固定值的數(shù)據(jù)。數(shù)據(jù)類型為了能在各種應(yīng)用中使用,程序必須能夠存儲(chǔ)多種不同類型的數(shù)據(jù)。程序中每一個(gè)變量 都必須有一個(gè)類型。類型用來說明變量所存儲(chǔ)的數(shù)據(jù)的種類。C語言擁有廣泛多樣的類型。無論何時(shí)使用數(shù)據(jù),無論使用的是整數(shù)、小數(shù)還是字符,c編譯器都應(yīng)該了解其數(shù)據(jù)類型。從整體上講,數(shù)據(jù)類型是一組值及這組值上的一組操作。數(shù)據(jù)類型包括:一組值,即值的集合:例如:整型數(shù)據(jù)的集合就是機(jī)器硬件所能構(gòu)造的所有整數(shù)(,-1,0,1,2,.)例如:字符型數(shù)據(jù)的集合就是鍵盤上出現(xiàn)的或可顯示在屏幕上的符號(hào)的集合 這組值上的操作集合:例如:給出兩個(gè)整數(shù),可以將它們相加、相乘等 例如:給出兩個(gè)字符數(shù)據(jù),可以對(duì)兩者進(jìn)行比較

14、,看它們字母順序如何 5文檔來源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.操作必須與值的集合項(xiàng)對(duì)應(yīng)。本節(jié)只限定介紹int、double和char數(shù)據(jù)類型,詳細(xì)內(nèi)容將在后面章節(jié)介紹。數(shù)據(jù)類型的對(duì)象可以是變量或常量。int數(shù)據(jù)類型數(shù)學(xué)中整數(shù)就是非分?jǐn)?shù)和小數(shù)的數(shù)。Int類型在C語言中代表整數(shù)。因?yàn)橐粋€(gè)存儲(chǔ)單元的大小是有限的,所以不是所有的整數(shù)都可以由int型表示。Int型數(shù)據(jù)通常與程序的執(zhí)行環(huán)境的字長相同,對(duì)于 16位環(huán)境,如DOS下的TC2.0, int型數(shù)據(jù)在內(nèi) 存中占16位,即2個(gè)字節(jié);對(duì)于大多數(shù)32位環(huán)境,如windows XP等,int型數(shù)據(jù)在內(nèi)存中 占32位,即4個(gè)字節(jié)。VC6中int型數(shù)

15、據(jù)在內(nèi)存中占4個(gè)字節(jié),取值范圍是-48至47整數(shù)可以存儲(chǔ)在int型變量中,進(jìn)行常用的算術(shù)運(yùn)算,加減乘除等,還可以比較兩個(gè)整數(shù) 的大小。double數(shù)據(jù)類型實(shí)數(shù)擁有一個(gè)整數(shù)部分和一個(gè)小數(shù)部分,并由小數(shù)隔開。 C中數(shù)據(jù)類型double用于表示 實(shí)數(shù),如 3.14159 0.005、15.8。實(shí)數(shù)可以存儲(chǔ)在double型變量中,進(jìn)行常用的算術(shù)運(yùn)算,還可以比較兩個(gè)整數(shù)的大小。VC6中double型數(shù)據(jù)在內(nèi)存中占8個(gè)字節(jié),15位有效數(shù)字,數(shù)值范圍為-1.7*10-308至1.7*10308 數(shù)據(jù)類型double是實(shí)數(shù)的一個(gè)抽象,因?yàn)樗话ㄋ械膶?shí)數(shù),一些實(shí)數(shù)太大或太小,還有一些實(shí)數(shù)不能在大小有限的存儲(chǔ)

16、單元內(nèi)精確表示。然而,C中絕對(duì)可以表示足夠多的實(shí)數(shù)來執(zhí)行大部分具有相當(dāng)精度的計(jì)算。char數(shù)據(jù)類型char類型表示一個(gè)字符值一一字母、數(shù)字或?qū)S梅?hào)。每個(gè)char型數(shù)據(jù)都包含在單引號(hào)內(nèi),如:A Z5 。字符可以存儲(chǔ)在char型變量中,并可以比較字符數(shù)據(jù)的大小。char型數(shù)據(jù)占1字節(jié)。C語言將char型數(shù)據(jù)對(duì)應(yīng)的ASCII碼值保存在1個(gè)字節(jié)的內(nèi)存空間中,所以C語言甚至 允許對(duì)char型數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,但必須小心使用。變量聲明與初始化變量(Variable)是一個(gè)值的存放處,它有三個(gè)重要屬性:名稱、值和數(shù)據(jù)類型。為了理解名稱、值和數(shù)據(jù)類型三者之間的關(guān)系,可以將變量看做一個(gè)外部貼有標(biāo)簽的盒子。名稱

17、:變量的名字寫在標(biāo)簽上,以區(qū)分不同的盒子值:變量的值對(duì)應(yīng)于盒子內(nèi)裝的東西。數(shù)據(jù)類型:變量類型表明什么類型的數(shù)據(jù)可存儲(chǔ)在盒子中。盒子標(biāo)簽上的名稱從不改變,但可以經(jīng)常從盒子中取出值或放入新 值。Cdeclaring!) 一個(gè)變量就是告訴6文檔來源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.文檔來源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持C編譯器引用了一個(gè)新的變量名,并指定該變量可以保存的數(shù)據(jù)類型。變量定義語法格式:類型關(guān)鍵字 變量名1,變量名2 - ;例:int count;double area;char first_initial;int i,j,k;【說明】使用變量必須“先定義后使用

18、”變量名是由用戶定義的標(biāo)識(shí)符,它的構(gòu)成應(yīng)符合以下規(guī)則名稱必須以字母或下劃線字符開頭。名稱的其他字符必須是字母、數(shù)字或下劃線,不得使用空格和其他特殊符號(hào)名稱不可以是關(guān)鍵字。變量名可以為任意長度,但C編譯器只認(rèn)為前31個(gè)字符有意義。在C語言中,變量名中出現(xiàn)的大寫和小寫字母被視為不同的字符。變量名應(yīng)使讀者易于明白其中存儲(chǔ)的值是什么。實(shí)例操作【例2-2】使用C語言編程,程序根據(jù)用戶輸入的某圓的半徑值,求該圓的周#include main()int radius;double c ;輸入半徑;計(jì)算周長;輸出周長;在定義變量的同時(shí)可以為其賦初值,即C語言允許在定義變量的同時(shí)對(duì)變量進(jìn)行初始化。例:int s

19、um = 0;double source = 87.3char grade = A;定義但未賦初值的變量中,一般存放的是隨機(jī)數(shù)(靜態(tài)變量除外) 。常量常量是一種在程序中保持固定類型和固定值的數(shù)據(jù)。7文檔來源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.整型常量計(jì)算機(jī)中的數(shù)據(jù)都以二進(jìn)制形式存儲(chǔ)。在C 程序中,為便于表示和使用,整型常量可以用十進(jìn)制、 八進(jìn)制和十六進(jìn)制三種形式來表示, 編譯系統(tǒng)會(huì)自動(dòng)將其轉(zhuǎn)換為二進(jìn)制形式存儲(chǔ)。C 語言的編譯器將整型常量按照 int 型變量的長度來存儲(chǔ)。.實(shí)型常量由于計(jì)算機(jī)中的實(shí)型數(shù)以浮點(diǎn)形式表示,即小數(shù)點(diǎn)位置可以是浮動(dòng)的,因此實(shí)型常量可以稱為實(shí)數(shù)或浮點(diǎn)數(shù)。在C 程序中,實(shí)

20、型常量的表示方法如下:1)十進(jìn)制小數(shù)形式2)指數(shù)形式實(shí)型常量在存儲(chǔ)時(shí)按double類型存儲(chǔ),即占8個(gè)字節(jié)。.字符型常量C 語言中的字符常量是由單引號(hào)括起來的一個(gè)字符。對(duì)于某些控制字符(如回車符、換行符等)無法通過鍵盤輸入,因此, C 語言還引入了 另外一種特殊形式的字符常量轉(zhuǎn)義字符。.字符串常量字符串常量是由一對(duì)雙引號(hào)括起來的一個(gè)字符序列。為便于 C 程序判斷字符串是否結(jié)束,系統(tǒng)對(duì)每個(gè)用雙引號(hào)括起來的字符串常量都添加一個(gè)字符串結(jié)束標(biāo)識(shí) 0 。它不引起任何控制動(dòng)作,也不顯示。2.4 運(yùn)算符與表達(dá)式當(dāng)希望程序執(zhí)行計(jì)算時(shí),應(yīng)寫出一個(gè)表達(dá)式以指定必要的操作,其形式類似于數(shù)學(xué)表達(dá)式。例: n1 + n2

21、C 語言中的表達(dá)式由項(xiàng)和運(yùn)算符組成。項(xiàng):表示一個(gè)單獨(dú)的數(shù)據(jù)值,如 n1 , n2常量變量函數(shù)調(diào)用括號(hào)中的表達(dá)式運(yùn)算符:一個(gè)表示運(yùn)算的字符或一個(gè)字符序列,如 + , - , * , /, + , -當(dāng)程序運(yùn)行時(shí), 執(zhí)行表達(dá)式中每一個(gè)特定操作的過程稱為求值。 當(dāng)對(duì)表達(dá)式進(jìn)行求值時(shí),每一個(gè)運(yùn)算符都對(duì)兩邊項(xiàng)所表示的數(shù)據(jù)值進(jìn)行運(yùn)算。當(dāng)所有運(yùn)算符求值完畢后,剩下的一個(gè)數(shù)據(jù)就是計(jì)算結(jié)果。算術(shù)運(yùn)算符與算術(shù)表達(dá)式算術(shù)運(yùn)算符算術(shù)運(yùn)算符主要有+ - * / % (取余運(yùn)算)操作對(duì)象文檔來源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持算法運(yùn)算符的操作符可能是常量、變量或其他算術(shù)表達(dá)式。例:3.14 * 2 *

22、 25 + count - 34 * num - 35 % 2 (值為1)3.操作數(shù)數(shù)據(jù)類型運(yùn)算符+ - * /既允許操作數(shù)是int型或double型,或允許兩者的混合。當(dāng)把int型操作數(shù) 和double型操作數(shù)混合在一起使用時(shí),運(yùn)算結(jié)果是 double型。運(yùn)算符可以與整數(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)【注意】當(dāng)兩個(gè)操作數(shù)都是整數(shù)時(shí),/通過丟掉分?jǐn)?shù)部分的方法截取結(jié)果。%要求整數(shù)操作數(shù);如果兩個(gè)操作

23、數(shù)中有一個(gè)不是整數(shù),那么程序?qū)o法編譯通過。%左側(cè)的操作數(shù)為被除數(shù),右側(cè)的操作數(shù)為除數(shù),運(yùn)算的結(jié)果為整除后的余數(shù),余數(shù) 的符號(hào)與被除數(shù)的符號(hào)相同。4.運(yùn)算符的優(yōu)先級(jí)在C語言中,優(yōu)先級(jí)順序由符合標(biāo)準(zhǔn)數(shù)學(xué)用法的一系列排序規(guī)則決定,稱之為優(yōu)先級(jí)法則。對(duì)算術(shù)表達(dá)式來說,常見的規(guī)則有:C編譯器首先執(zhí)行任何一元運(yùn)算符(如-)C編譯器接下來執(zhí)行乘法運(yùn)算符* / %。若兩個(gè)乘法運(yùn)算符作用于同一操作數(shù),則優(yōu)先執(zhí)行最左邊的運(yùn)算符。(3)再接下來執(zhí)彳T加法運(yùn)算符+ -0同樣,若兩個(gè)加法運(yùn)算符作用于同一操作數(shù),則優(yōu)先執(zhí)行最左邊的運(yùn)算符。5.運(yùn)算符的結(jié)合性當(dāng)一個(gè)表達(dá)式中出現(xiàn)不同類型的運(yùn)算符時(shí),首先按照他們的優(yōu)先級(jí)順序進(jìn)

24、行運(yùn)算。當(dāng)兩類運(yùn)算符的優(yōu)先級(jí)相同時(shí),則要根據(jù)運(yùn)算符的結(jié)合性確定運(yùn)算順序。結(jié)合性表明運(yùn)算時(shí)的結(jié)合分向。算術(shù)運(yùn)算符的結(jié)合性為左結(jié)合。9文檔來源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.1.簡單賦值一旦計(jì)算出表達(dá)式的值就常常需要把這個(gè)值存儲(chǔ)在變量中,以便以后使用。C語言中,簡單賦值運(yùn)算符(=)可以用于此目的。簡單賦值運(yùn)算符(二)與數(shù)學(xué)中的等號(hào)不同,所以應(yīng)將它讀作“變?yōu)椤薄ⅰ百x值為。在數(shù) 學(xué)領(lǐng)域,=表示兩個(gè)值之間的關(guān)系,但是在 C中它表示由計(jì)算機(jī)執(zhí)行的一個(gè)操作。變量的值是用賦值表達(dá)式獲得的。C語言中的賦值表達(dá)式形式如下:變量=表達(dá)式在寫賦值表達(dá)式時(shí),等號(hào)的左邊可以是任何變量名,等號(hào)右邊可以是任何表達(dá)式。

25、【注意】二右側(cè)的表達(dá)式的值會(huì)賦給 二左側(cè)的變量,變量原來的值就消失了。賦值表達(dá)式最后以;結(jié)束就形成了賦值語句。變量=表達(dá)式;【例】int item,sum;sum = 5;item = 10;sum = item + sum;實(shí)例操作【例2-2】使用C語言編程,程序根據(jù)用戶輸入的某圓的半徑值,求該圓的周,。#include main()int radius,l;輸入半徑;= 2 * 3.14 * radius ;輸出周長; 例:假設(shè)變量balance保存某人銀行賬戶的余額,他想往賬戶中存一筆錢,數(shù)額保存在變 量desposit中。新的余額由表達(dá)式 balance+desposi也合出。于是可以

26、寫出如下賦值語句:newbalance = balance + despos it然而在大多數(shù)情況下,人們不愿用一個(gè)新變量來存儲(chǔ)結(jié)果。存錢的效果就是改變銀行賬 戶中的余額,我們可以把 balance+desposit的值存入變量balance中,賦值語句改為:balance = balance + despos it像這樣對(duì)一個(gè)變量執(zhí)行一些操作并將結(jié)果重新存入變量的語句在程序設(shè)計(jì)時(shí)使用十分頻繁,因此 C 語言的設(shè)計(jì)者特意加入了它的一種習(xí)慣的簡記方式,即將balance = balance +desposit;寫成balance += desposi;t凡是二元運(yùn)算符,都可以與賦值符( = )一

27、起組合成復(fù)合賦值符。 C 語言規(guī)定可以使用10種復(fù)合賦值運(yùn)算符,即:+= -= *= /= %= = &= A= |=賦值運(yùn)算符的結(jié)合性賦值運(yùn)算符的結(jié)合性是自右向左。C 語言提供了自增運(yùn)算符(+)與自減運(yùn)算符(- ) 。1)自增運(yùn)算符+i+ :在使用 i 之后,使 i 的值加 1+i :在使用 i 之前,先使i 的值加 1例: int m;int n = 3;m = n+ ;m = +n ;2)自減運(yùn)算符i-:在使用 i 之后,使 i 的值減 1-i:在使用 i 之前,先使i 的值減 1例: int m;int n = 3;m = n- ; m = -n ;注意:自增和自減運(yùn)算符只能用于變量。

28、自增和自減運(yùn)算符的優(yōu)先級(jí)與負(fù)號(hào)優(yōu)先級(jí)相同。自增和自減的結(jié)合方向是“自右至左” 。例: int m;int n = 3;m = -n+ ;提示:良好的程序設(shè)計(jì)風(fēng)格提倡在一行語句中,一個(gè)變量最多只出現(xiàn)一次增 1 或減 1 運(yùn)算。因?yàn)檫^多的+、 - 混合運(yùn)算,會(huì)導(dǎo)致程序的可讀性變差。同時(shí), C 語言規(guī)定表達(dá)式中的子表達(dá)式以未定順序求值,這就允許編譯程序自由重排表達(dá)式的順序,以便產(chǎn)生最優(yōu)代碼。這也導(dǎo)致相同的表達(dá)式用不同的編譯器編譯時(shí),可能產(chǎn)生不同的運(yùn)算結(jié)果。例如:Sum =( +a) + ( +a) ;11文檔來源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯 .Printf (d%d”, a, a+, a

29、+);建議不要采用。使用強(qiáng)制轉(zhuǎn)換運(yùn)算符可以把表達(dá)式的結(jié)果硬性轉(zhuǎn)換為一個(gè)用戶指定的類型值。(類型)表達(dá)式例:Int n ;Double d;d = (double) n / 2 ;不能對(duì)變量所占的字節(jié)數(shù)想當(dāng)然,要想獲知int型數(shù)據(jù)的準(zhǔn)確字節(jié)數(shù)信息,可以使用sizeof 運(yùn)算符計(jì)算其在內(nèi)存中所占的字節(jié)數(shù)。sizeof (表達(dá)式)其中,表示可以是變量名、常量以及數(shù)據(jù)類型名。該運(yùn)算符的功能:求表達(dá)式中變量名所代表的內(nèi)存單元所占的字節(jié)數(shù);或求表達(dá)式中常 量所占內(nèi)存單元的字節(jié)數(shù);或求表達(dá)式中的數(shù)據(jù)類型表示的數(shù)據(jù)在內(nèi)存單元中所占的字節(jié)數(shù)。2.5格式化輸入與輸由數(shù)據(jù)可以以兩種方式存儲(chǔ)在內(nèi)存中,賦值給變量或利用函數(shù)將數(shù)據(jù)從輸入設(shè)備復(fù)制到變 量中。數(shù)據(jù)從輸入設(shè)備傳送到內(nèi)存的指令稱為輸入操作。當(dāng)程序執(zhí)行時(shí),會(huì)進(jìn)行計(jì)算,并將結(jié)果保存到內(nèi)存中。程序結(jié)果可以通過輸出操作顯示 給程序用戶。顯示存儲(chǔ)在內(nèi)存中的信息的指令為輸出操作。C中所有的輸入輸出操作都由稱作輸入輸出函數(shù)來完成。本節(jié)將介紹輸入函數(shù)scanf和輸

溫馨提示

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

評(píng)論

0/150

提交評(píng)論