C語言第2章數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算_第1頁
C語言第2章數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算_第2頁
C語言第2章數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算_第3頁
C語言第2章數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算_第4頁
C語言第2章數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算2.1 2.1 數(shù)據(jù)類型的一般概念數(shù)據(jù)類型的一般概念2.2 2.2 常量與變量常量與變量2.3 2.3 整型數(shù)據(jù)整型數(shù)據(jù)2.4 2.4 浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)2.5 2.5 字符型數(shù)據(jù)字符型數(shù)據(jù)2.6 2.6 賦值運(yùn)算符及變量賦初值賦值運(yùn)算符及變量賦初值2.7 2.7 不同數(shù)據(jù)類型數(shù)據(jù)間的混合運(yùn)算不同數(shù)據(jù)類型數(shù)據(jù)間的混合運(yùn)算2.8 2.8 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式2.9 2.9 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性運(yùn)算符的優(yōu)先級(jí)和結(jié)合性22.1 2.1 數(shù)據(jù)類型的一般概念數(shù)據(jù)類型的一般概念2.2 2.2 常量與變量常量與變量2.3 2.3 整型數(shù)據(jù)整型

2、數(shù)據(jù)2.4 2.4 浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)2.5 2.5 字符型數(shù)據(jù)字符型數(shù)據(jù)2.6 2.6 賦值運(yùn)算符及變量賦初值賦值運(yùn)算符及變量賦初值2.7 2.7 不同數(shù)據(jù)類型數(shù)據(jù)間的混合運(yùn)算不同數(shù)據(jù)類型數(shù)據(jù)間的混合運(yùn)算2.8 2.8 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式2.9 2.9 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性運(yùn)算符的優(yōu)先級(jí)和結(jié)合性第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算32.1 2.1 數(shù)據(jù)類型的一般概念數(shù)據(jù)類型的一般概念第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算42.1 2.1 數(shù)據(jù)類型的一般概念數(shù)據(jù)類型的一般概念2.2 2.2 常量與變量常量與變量2.3 2.3 整型數(shù)據(jù)整型數(shù)據(jù)2.4

3、2.4 浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)2.5 2.5 字符型數(shù)據(jù)字符型數(shù)據(jù)2.6 2.6 賦值運(yùn)算符及變量賦初值賦值運(yùn)算符及變量賦初值2.7 2.7 不同數(shù)據(jù)類型數(shù)據(jù)間的混合運(yùn)算不同數(shù)據(jù)類型數(shù)據(jù)間的混合運(yùn)算2.8 2.8 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式2.9 2.9 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性運(yùn)算符的優(yōu)先級(jí)和結(jié)合性第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算52.2 常量與變量在程序執(zhí)行過程中,其值不能被改變的量稱為常量常量。例:12、 0、 -7 為整型常量 3.14、 -2.8 為浮點(diǎn)型常量 a、 b、 c 為字符常量 第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算62.2 常量與變量有時(shí)候

4、,為了使程序更加清晰和便于修改,用一個(gè)標(biāo)識(shí)符代表常量。有時(shí)候,為了使程序更加清晰和便于修改,用一個(gè)標(biāo)識(shí)符代表常量。稱為稱為符號(hào)常量符號(hào)常量符號(hào)常量符號(hào)常量在使用之前必須先定義,其一般形式為:#define 標(biāo)識(shí)符標(biāo)識(shí)符 常量常量其中#define是一條預(yù)處理命令(預(yù)處理命令都以“#”開頭),稱為宏定義命令,其功能是把該標(biāo)識(shí)符定義為其后的常量值。一經(jīng)定義,以后在程序中所有出現(xiàn)該標(biāo)識(shí)符的地方均代之以該常量值。使用符號(hào)常量的好處如下: 含義清楚。 在需要改變一個(gè)常量時(shí)能做到“一改全改”。第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算例2.1 符號(hào)常量的使用。程序代碼如下:#define PI

5、3.14#include void main() float area, r; r = 10; area = PI* r * r; printf(area=%fn, area);例2.1 符號(hào)常量的使用。程序代碼如下:#define PI 3.14#include void main() float area, r; r = 10; area = PI* r * r; printf(area=%fn, area);注意:符號(hào)常量注意:符號(hào)常量是是“傻瓜式傻瓜式”的的替換。替換。92.2 常量與變量在程序執(zhí)行過程中,其值可變的量稱為變量。一個(gè)變量必須有一個(gè)名字,在內(nèi)存中占據(jù)一定的存儲(chǔ)單元,在該存

6、儲(chǔ)單元中存放變量的值。 第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算102.2 常量與變量變量名是一種標(biāo)識(shí)符標(biāo)識(shí)符,所謂標(biāo)識(shí)符就是程序中用來為符號(hào)常量、變所謂標(biāo)識(shí)符就是程序中用來為符號(hào)常量、變量、函數(shù)、數(shù)組、文件等命名的有效字符序列量、函數(shù)、數(shù)組、文件等命名的有效字符序列。標(biāo)識(shí)符的命名規(guī)則如下:標(biāo)識(shí)符的命名規(guī)則:標(biāo)識(shí)符的命名規(guī)則: 只能由字母、數(shù)字和下劃線組成。只能由字母、數(shù)字和下劃線組成。 第一個(gè)字符必須為字母或下劃線。第一個(gè)字符必須為字母或下劃線。 不能使用不能使用C語言中的關(guān)鍵字。語言中的關(guān)鍵字。 區(qū)分大小寫字母,區(qū)分大小寫字母,sum和和Sum是不同的標(biāo)識(shí)符。是不同的標(biāo)識(shí)符。第

7、第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算112.2 常量與變量變量則必須作強(qiáng)制定義,即“先定義,后使用先定義,后使用”。這樣做的目的有以下幾點(diǎn):凡未被事先定義的,不作為變量名,這就能保證程序中的變量名使用得正確。一個(gè)變量被指定為某一確定的數(shù)據(jù)類型,在編譯時(shí)就能為其分配相應(yīng)的存儲(chǔ)單元。一個(gè)變量被指定為某一確定的數(shù)據(jù)類型,便于在編譯時(shí)據(jù)此檢查所進(jìn)行的運(yùn)算是否合法。第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算12至此,我們學(xué)習(xí)了兩種數(shù)據(jù)分類方法:至此,我們學(xué)習(xí)了兩種數(shù)據(jù)分類方法:第一種:按照數(shù)據(jù)類型分類:第一種:按照數(shù)據(jù)類型分類:第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算

8、第二種,按照數(shù)據(jù)的值是否能夠改變分類:常量和變量第二種,按照數(shù)據(jù)的值是否能夠改變分類:常量和變量13假設(shè)只考慮基本數(shù)據(jù)類型,則可有以下情況:假設(shè)只考慮基本數(shù)據(jù)類型,則可有以下情況:整型常量、整型變量整型常量、整型變量浮點(diǎn)型常量、浮點(diǎn)型變量浮點(diǎn)型常量、浮點(diǎn)型變量字符型常量、字符型變量字符型常量、字符型變量第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算142.1 2.1 數(shù)據(jù)類型的一般概念數(shù)據(jù)類型的一般概念2.2 2.2 常量與變量常量與變量2.3 2.3 整型數(shù)據(jù)整型數(shù)據(jù)2.4 2.4 浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)2.5 2.5 字符型數(shù)據(jù)字符型數(shù)據(jù)2.6 2.6 賦值運(yùn)算符及變量賦初值賦值運(yùn)算符

9、及變量賦初值2.7 2.7 不同數(shù)據(jù)類型數(shù)據(jù)間的混合運(yùn)算不同數(shù)據(jù)類型數(shù)據(jù)間的混合運(yùn)算2.8 2.8 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式2.9 2.9 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性運(yùn)算符的優(yōu)先級(jí)和結(jié)合性第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算15 2.3 2.3 整型數(shù)據(jù)整型數(shù)據(jù)第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算整型變量的定義整型變量的定義C規(guī)定在程序中所有用到的變量都必須在程序中定義,即“強(qiáng)制類型定義”。變量定義的一般形式為: 類型聲明符類型聲明符 變量名標(biāo)識(shí)符變量名標(biāo)識(shí)符1, 變量名標(biāo)識(shí)符變量名標(biāo)識(shí)符2, .;162.3 整型數(shù)據(jù)1整型變量的分類整型變量可分為基本型、短整型

10、、長整型和無符號(hào)型4種。 基本型類型聲明符為intint,在內(nèi)存中占2個(gè)字節(jié)。 短整型類型聲明符為short int或short,所占字節(jié)和取值范圍均與基本型相同。 長整型類型聲明符為long intlong int或longlong,在內(nèi)存中占4個(gè)字節(jié)。 無符號(hào)型類型聲明符為unsignedunsigned,存儲(chǔ)單元中全部二進(jìn)位(bit)都用作存放數(shù)本身,而不包括符號(hào)。第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算 C+標(biāo)準(zhǔn)規(guī)定:int占一個(gè)機(jī)器字長。在32位系統(tǒng)中int占32位,也就是4個(gè)字節(jié),而在老式的16位系統(tǒng)中,int占16位,即2個(gè)字節(jié)。而C+標(biāo)準(zhǔn)中只限制規(guī)定short in

11、t不能超過int的長度,具體長度的可以由C+編譯器的實(shí)現(xiàn)廠商自行決定。目前流行的32位C+編譯器中,通常int占4字節(jié),short int占2字節(jié)。其中short int可以簡(jiǎn)寫為short。1. 類似地,C+標(biāo)準(zhǔn)只限制了long int不得小于int的長度,具體也沒有作出限制。172.3 整型數(shù)據(jù)1整型變量的分類整型變量可分為基本型、短整型、長整型和無符號(hào)型4種。 基本型類型聲明符為intint,在內(nèi)存中占2個(gè)字節(jié)。 短整型類型聲明符為short int或short,所占字節(jié)和取值范圍均與基本型相同。 長整型類型聲明符為long intlong int或longlong,在內(nèi)存中占4個(gè)字節(jié)。

12、 無符號(hào)型類型聲明符為unsignedunsigned,存儲(chǔ)單元中全部二進(jìn)位(bit)都用作存放數(shù)本身,而不包括符號(hào)。第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算例如:int a, b, c; /* a、b、c為整型變量*/short d,e; /* d、e為短整型變量*/long m, n; /* m、n為長整型變量*/unsigned int p, q; /* p、q為無符號(hào)整型變量*/192.3 整型數(shù)據(jù)變量定義時(shí)應(yīng)注意以下幾點(diǎn): 允許在一個(gè)類型聲明符后定義多個(gè)相同類型的變量,各變量名之間用逗號(hào)間隔。類型聲明符與變量名之間至少用一個(gè)空格間隔。 最后一個(gè)變量名之后必須以分號(hào)(;)結(jié)

13、束。 變量定義必須放在變量使用之前。 可在定義變量的同時(shí)給出變量的初值。其格式為:類型聲明符類型聲明符 變量名標(biāo)識(shí)符變量名標(biāo)識(shí)符1 = 初值初值1, 變量名標(biāo)識(shí)符變量名標(biāo)識(shí)符2 = 初值初值2, .;例:例:int a=1,b=2;第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算 例2.2整型變量的定義與初始化。程序代碼如下#include void main( ) int a = 3, b = 5; printf(a+b=%dn, a + b);變量在內(nèi)存中的存儲(chǔ)形式數(shù)據(jù)在內(nèi)存中是以二進(jìn)制補(bǔ)碼形式存放的 整型數(shù)據(jù)的溢出一個(gè)int型變量的取值范圍是-3276832767,超過這個(gè)范圍則溢出

14、 整型數(shù)據(jù)在內(nèi)存中的存放形式整型數(shù)據(jù)在內(nèi)存中的存放形式 在內(nèi)存中以二進(jìn)制形式存放 int i; i = 10;10i在內(nèi)存中的表示:示意圖0 0 0 0 0 0 0 00 0 0 0 1 0 1 0在內(nèi)存中的實(shí)際存放情況實(shí)際上,數(shù)值是以補(bǔ)碼表示的正數(shù)的補(bǔ)碼是本身負(fù)數(shù)的補(bǔ)碼是絕對(duì)值的二進(jìn)制變反加一考慮表示-10的示意圖及在內(nèi)存中的存放情況?整型變量的溢出整型變量的溢出 一個(gè)int型變量的最大允許值為32767,加1后如何?例2.3 整型數(shù)據(jù)的溢出#include main() int a,b; a=32767; b=a+1; printf(%d,%d,a,b);運(yùn)行結(jié)果:32767,-32768

15、進(jìn)一步 若a=-32768,b=a-1;則結(jié)果為-32768,327670 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1327671 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-32768其原因在于: 以補(bǔ)碼表示1. 有符號(hào)位補(bǔ)碼至原碼:正數(shù)的原碼是本身負(fù)數(shù)的原碼是符號(hào)位不變,其它位變反加一242.3.2 2.3.2 整型常量整型常量 整型常量就是整常數(shù)。在整型常量就是整常數(shù)。在C語言中,使用的語言中,使用的整常數(shù)有八進(jìn)制、十六進(jìn)制和十進(jìn)整常數(shù)有八進(jìn)制、十六進(jìn)制和十進(jìn)制制3種種,使用不同的前綴來相互區(qū)分。除了前綴外,使用不同的前綴來相互區(qū)分。除了前綴外,C語言中還

16、使用后綴來區(qū)分語言中還使用后綴來區(qū)分不同的整數(shù)。不同的整數(shù)。1八進(jìn)制整常數(shù)八進(jìn)制整常數(shù)八進(jìn)制整常數(shù)必須以八進(jìn)制整常數(shù)必須以0 0開頭,即以開頭,即以0作為八進(jìn)制數(shù)的前綴。作為八進(jìn)制數(shù)的前綴。2十六進(jìn)制整常數(shù)十六進(jìn)制整常數(shù)十六進(jìn)制整常數(shù)的前綴為十六進(jìn)制整常數(shù)的前綴為0X0X或或0 x0 x。3十進(jìn)制整常數(shù)十進(jìn)制整常數(shù)十進(jìn)制整常數(shù)沒有前綴,數(shù)碼取值為十進(jìn)制整常數(shù)沒有前綴,數(shù)碼取值為09。4整型常數(shù)的后綴整型常數(shù)的后綴長整型數(shù)是用后綴長整型數(shù)是用后綴“L”或或“l(fā)”來表示的。來表示的。5整型常數(shù)的類型整型常數(shù)的類型(見教材第(見教材第25頁)頁)第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算2

17、52.1 2.1 數(shù)據(jù)類型的一般概念數(shù)據(jù)類型的一般概念2.2 2.2 常量與變量常量與變量2.3 2.3 整型數(shù)據(jù)整型數(shù)據(jù)2.4 2.4 浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)2.5 2.5 字符型數(shù)據(jù)字符型數(shù)據(jù)2.6 2.6 賦值運(yùn)算符及變量賦初值賦值運(yùn)算符及變量賦初值2.7 2.7 不同數(shù)據(jù)類型數(shù)據(jù)間的混合運(yùn)算不同數(shù)據(jù)類型數(shù)據(jù)間的混合運(yùn)算2.8 2.8 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式2.9 2.9 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性運(yùn)算符的優(yōu)先級(jí)和結(jié)合性第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算262.4 浮點(diǎn)型數(shù)據(jù)1浮點(diǎn)型變量的分類按照數(shù)值的取值范圍不同分為以下三種:1)單精度型:類型聲明符為floatflo

18、at,在內(nèi)存中占4個(gè)字節(jié)。2)雙精度型:類型聲明符為doubledouble,在內(nèi)存中占8個(gè)字節(jié)。3)長雙精度型:類型聲明符為long double,在內(nèi)存中占16個(gè)字節(jié)。2. 浮點(diǎn)型變量的定義浮點(diǎn)型變量聲明的格式和書寫規(guī)則與整型相同。例如: float x, y; /* x、y為單精度變量*/也可在聲明變量為浮點(diǎn)型的同時(shí),給變量賦初值。例如:double a = 0.2, b = 1.3, c = 5.1第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算272.4 浮點(diǎn)型數(shù)據(jù)1浮點(diǎn)型常量的表示形式有兩種形式:十進(jìn)制數(shù)形式和指數(shù)形式。1) 十進(jìn)制數(shù)形式由數(shù)碼09和小數(shù)點(diǎn)組成。例如0.0、.2

19、5、5.789、0.13、5.0、300.、-267.8230 等均為合法的實(shí)數(shù)。2) 指數(shù)形式一般格式是“實(shí)數(shù)+e(或E)+整數(shù)”,記為a E n,其值為a10n。2浮點(diǎn)型常量的類型許多C編譯系統(tǒng)將實(shí)型常量作為雙精度來處理第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算 實(shí)型變量分類所占字節(jié)數(shù)float: 占4字節(jié),提供7位有效數(shù)字Double: 占8字節(jié),提供1516位有效數(shù)字long double:占16字節(jié),提供1819位有效數(shù)字(不常用)float a; a=111111.111; /* a=111111.1*/double b;b=111111.111; /* b=111111

20、.111*/ 實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式看一看實(shí)數(shù)3.14159在內(nèi)存中存放的示意圖(書中(書中P26第二段,必須明白清楚其意義)第二段,必須明白清楚其意義)+.3141591數(shù)符小數(shù)部分指數(shù)部分 例2.4 演示float和double的區(qū)別。程序代碼如下:#include void main( ) float a; double b; a = 33333.333333; b = 33333.333333333; printf(a=%fnb=%fn, a, b); 輸出結(jié)果:輸出結(jié)果: a=3333.332031 b=3333.333333312.1 2.1 數(shù)據(jù)類型的一般概念數(shù)據(jù)類型的一般概

21、念2.2 2.2 常量與變量常量與變量2.3 2.3 整型數(shù)據(jù)整型數(shù)據(jù)2.4 2.4 浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)2.5 2.5 字符型數(shù)據(jù)字符型數(shù)據(jù)2.6 2.6 賦值運(yùn)算符及變量賦初值賦值運(yùn)算符及變量賦初值2.7 2.7 不同數(shù)據(jù)類型數(shù)據(jù)間的混合運(yùn)算不同數(shù)據(jù)類型數(shù)據(jù)間的混合運(yùn)算2.8 2.8 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式2.9 2.9 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性運(yùn)算符的優(yōu)先級(jí)和結(jié)合性第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算32 2.5 字符型數(shù)據(jù)字符常量字符常量是用一對(duì)單引號(hào)括起來的單個(gè)字符,如A、a、X、?、$等都是字符常量。注意單引號(hào)是定界符,不是字符常量的一部分。C語言還允許用一種特

22、殊形式的字符常量,即轉(zhuǎn)義字轉(zhuǎn)義字符符。轉(zhuǎn)義字符以反斜線“”開頭,后跟一個(gè)或幾個(gè)字符。第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算332.5 字符型數(shù)據(jù)轉(zhuǎn)義字符表示含義反斜杠字符“”單引號(hào)字符”雙引號(hào)字符n換行,將當(dāng)前位置移到下一行開頭t水平制表,橫向跳到下一個(gè)輸出區(qū)r回車,將當(dāng)前位置移到本行開頭f換頁,將當(dāng)前位置移到下頁開頭b退格,將當(dāng)前位置移到前一列ddd1到3位八進(jìn)制數(shù)所代表的字符xhh1到2位十六進(jìn)制數(shù)所代表的字符第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算區(qū)分一下:650650 x65nn”n”n65x65352.5 字符型數(shù)據(jù)字符變量字符變量用來存放字符常量,即單個(gè)字

23、符。每個(gè)字符變量被分配一個(gè)字節(jié)的內(nèi)每個(gè)字符變量被分配一個(gè)字節(jié)的內(nèi)存空間,因此只能存放一個(gè)字符。存空間,因此只能存放一個(gè)字符。字符變量的類型聲明符為char,字符變量類型聲明的格式如下:char a, b; /* 定義字符變量 a和b */a = x, b = y; /* 給字符變量a和b分別賦值x和y */字符數(shù)據(jù)在內(nèi)存中以ASCII碼存儲(chǔ),它的存儲(chǔ)形式與整數(shù)的存儲(chǔ)形式相類似,所以也可以把它們看成是整型量。所以也可以把它們看成是整型量。 注意:整型數(shù)據(jù)為整型數(shù)據(jù)為2個(gè)字節(jié)個(gè)字節(jié)字符數(shù)據(jù)為字符數(shù)據(jù)為1個(gè)字節(jié)個(gè)字節(jié)當(dāng)整型數(shù)據(jù)按字符型量處理時(shí),只有低當(dāng)整型數(shù)據(jù)按字符型量處理時(shí),只有低8位參與處理。位

24、參與處理。第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算 例2.6 字符變量的使用。程序代碼如下:#include void main() char a, b; a = 120; b = 121; printf(%c,%cn%d,%dn, a, b, a, b); 例2.6 字符變量的使用。程序代碼如下:#include void main() char a, b; a = 120; b = 121; printf(%c,%cn%d,%dn, a, b, a, b); 輸出結(jié)果:輸出結(jié)果:x,y120,121 例例2.7 將小寫字母轉(zhuǎn)換成大寫字母。程序代碼如下:將小寫字母轉(zhuǎn)換成大寫字母。

25、程序代碼如下:#include void main() char a, b; a = x; b = y; a = a-32; /* 把小寫字母轉(zhuǎn)換成大寫字母把小寫字母轉(zhuǎn)換成大寫字母 */ b = b-32; printf(%c,%cn%d,%dn, a, b, a, b); /* 以字符型和整型輸出以字符型和整型輸出 */392.5.3 字符串常量字符串常量是由一對(duì)雙引號(hào)括起來的字符序列。字符串常量是由一對(duì)雙引號(hào)括起來的字符序列。如:”CHINA”、”C program”、”$12.5”等都是合法的字符串常量。思考:思考:不能把一個(gè)字符串賦值給一個(gè)字符變量。那不能把一個(gè)字符串賦值給一個(gè)字符變量

26、。那么,么,a和和“a”究竟有什么區(qū)別呢?究竟有什么區(qū)別呢?可以輸出一個(gè)字符串,例如:printf(Hello world!);第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算C語言規(guī)定,在每一個(gè)字符串的結(jié)尾加一個(gè)字符串結(jié)束標(biāo)記,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。C語言規(guī)定以字符0作為字符串結(jié)束標(biāo)記。0是一個(gè)ASCII碼為0的字符,也就是空操作字符,即它不引起任何控制動(dòng)作,也不是一個(gè)可顯示的字符。如字符串“WORLD”在內(nèi)存中的實(shí)際存放形式為:412.1 2.1 數(shù)據(jù)類型的一般概念數(shù)據(jù)類型的一般概念2.2 2.2 常量與變量常量與變量2.3 2.3 整型數(shù)據(jù)整型數(shù)據(jù)2.4 2.4 浮點(diǎn)型數(shù)據(jù)

27、浮點(diǎn)型數(shù)據(jù)2.5 2.5 字符型數(shù)據(jù)字符型數(shù)據(jù)2.6 2.6 賦值運(yùn)算符及變量賦初值賦值運(yùn)算符及變量賦初值2.7 2.7 不同數(shù)據(jù)類型數(shù)據(jù)間的混合運(yùn)算不同數(shù)據(jù)類型數(shù)據(jù)間的混合運(yùn)算2.8 2.8 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式2.9 2.9 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性運(yùn)算符的優(yōu)先級(jí)和結(jié)合性第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算422.6 變量賦初值第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算在C語言中允許在定義變量的同時(shí)初始化,如:int a=3;float f=3.21;如果對(duì)幾個(gè)變量都賦予相同的初值(如1),應(yīng)寫成:int x=1,y=1,z=1;注意:不能寫成int x=y

28、=z=1;但可以寫成:int x, y, z;x=y=z=1;變量初始化是在程序運(yùn)行時(shí)賦予初值的,相當(dāng)一個(gè)變量初始化是在程序運(yùn)行時(shí)賦予初值的,相當(dāng)一個(gè)賦值語句賦值語句如:如:int a=1;int a=1;相當(dāng)于:相當(dāng)于: int a;int a; a=1; a=1;int a, b, c=5;int a, b, c=5;相當(dāng)于:相當(dāng)于:int a, b, c;int a, b, c; c=5; c=5;442.1 2.1 數(shù)據(jù)類型的一般概念數(shù)據(jù)類型的一般概念2.2 2.2 常量與變量常量與變量2.3 2.3 整型數(shù)據(jù)整型數(shù)據(jù)2.4 2.4 浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)2.5 2.5 字符型數(shù)據(jù)字符型

29、數(shù)據(jù)2.6 2.6 賦值運(yùn)算符及變量賦初值賦值運(yùn)算符及變量賦初值2.7 2.7 不同數(shù)據(jù)類型數(shù)據(jù)間的混合運(yùn)算不同數(shù)據(jù)類型數(shù)據(jù)間的混合運(yùn)算2.8 2.8 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式2.9 2.9 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性運(yùn)算符的優(yōu)先級(jí)和結(jié)合性第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算452.7 不同數(shù)據(jù)類型數(shù)據(jù)間的混合運(yùn)算整型、實(shí)型(包括單精度和雙精度)、字符型數(shù)據(jù)間可以混合運(yùn)算混合運(yùn)算。10+a+1.5-12.34*b轉(zhuǎn)換的方法有兩種,一是自動(dòng)轉(zhuǎn)換,二是強(qiáng)制轉(zhuǎn)換。第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算46自動(dòng)類型轉(zhuǎn)換自動(dòng)類型轉(zhuǎn)換 若參與運(yùn)算的類型不同,則先轉(zhuǎn)換成同一類型

30、,然后進(jìn)行運(yùn)算。 轉(zhuǎn)換按數(shù)據(jù)長度增加的方向進(jìn)行,以保證精度不降低。如int型和long型混合運(yùn)算時(shí),先把int型轉(zhuǎn)成long型后再進(jìn)行運(yùn)算。 所有的浮點(diǎn)運(yùn)算都是以雙精度進(jìn)行的,即使僅含float單精度量運(yùn)算的表達(dá)式也要先轉(zhuǎn)換成double型,再作運(yùn)算。 char型和short型參與運(yùn)算時(shí),必須先轉(zhuǎn)換成int型。 在賦值運(yùn)算中,賦值號(hào)兩邊量的數(shù)據(jù)類型不同時(shí),賦值號(hào)右邊量的類型將轉(zhuǎn)換為左邊量的類型。如果右邊量的數(shù)據(jù)類型長度比左邊長時(shí),將丟失一部分?jǐn)?shù)據(jù),這樣會(huì)降低精度,丟失的部分按四舍五入向前舍入丟失的部分按四舍五入向前舍入。第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算 圖中縱向縱向向上的箭

31、頭表示必定發(fā)生的轉(zhuǎn)換,如字符型數(shù)據(jù)必先轉(zhuǎn)成整型,單精度數(shù)據(jù)先轉(zhuǎn)成雙精度數(shù)據(jù)等。 圖中橫向橫向的箭頭表示當(dāng)運(yùn)算對(duì)象為不同的類型時(shí)轉(zhuǎn)換的方向。 假設(shè)i為整型變量,f為單精度實(shí)型變量,d為雙精度實(shí)型變量,e為長整型變量。則表達(dá)式10+a+i*f-d/e的運(yùn)算次序如下:(1) 進(jìn)行10+a的運(yùn)算,先將a轉(zhuǎn)換成整數(shù)97,運(yùn)算結(jié)果為107。(2) 進(jìn)行i*f的運(yùn)算,先將i和f都轉(zhuǎn)換成雙精度型,運(yùn)算結(jié)果為雙精度型。(3) 整數(shù)107和i*f的積相加,先將整數(shù)107轉(zhuǎn)換成雙精度型(107.000000),運(yùn)算結(jié)果為雙精度型。(4) 進(jìn)行d/e的運(yùn)算,先將e轉(zhuǎn)換成雙精度型,運(yùn)算結(jié)果為雙精度型。(5) 將10+a

32、+i*f的結(jié)果與d/e的商相減,結(jié)果為雙精度型。上述的類型轉(zhuǎn)換是由系統(tǒng)自動(dòng)進(jìn)行的。 強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換(類型聲明符類型聲明符) (表達(dá)式表達(dá)式)其功能是把表達(dá)式的運(yùn)算結(jié)果強(qiáng)制轉(zhuǎn)換成類型聲明符所表示的類型。 例如:(float)a把a(bǔ)轉(zhuǎn)換為實(shí)型,(int)(x+y)把x+y的結(jié)果轉(zhuǎn)換為整型。? (int)(2.5+3.6)? (int)2.5+3.6 例例2.8 類型的強(qiáng)制轉(zhuǎn)換。程序代碼如下:#include void main() float f = 5.75; printf(int)f=%d,f=%fn, (int)f, f); 例例2.8 類型的強(qiáng)制轉(zhuǎn)換。程序代碼如下:#includ

33、e void main() float f = 5.75; printf(int)f=%d,f=%fn, (int)f, f); 思考:思考:強(qiáng)制轉(zhuǎn)換強(qiáng)制轉(zhuǎn)換后原變量的值是否變化?后原變量的值是否變化?例 char ch; int i; float f; double d;ch/i + f*d - (f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+a +i*f - d/l例 int i; float f; double d; long l;53第第2 2章章 數(shù)

34、據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算C運(yùn)運(yùn)算算符符算術(shù)運(yùn)算符算術(shù)運(yùn)算符:(:(+ - + - * * / % + - / % + -)關(guān)系運(yùn)算符:(關(guān)系運(yùn)算符:( = != = !=)邏輯運(yùn)算符:(!邏輯運(yùn)算符:(! & |& |)位運(yùn)算符位運(yùn)算符 :(:( | & | &)賦值運(yùn)算符賦值運(yùn)算符:(:(= = 及其擴(kuò)展)及其擴(kuò)展)條件運(yùn)算符:(條件運(yùn)算符:(?:?:)逗號(hào)運(yùn)算符:(逗號(hào)運(yùn)算符:(, ,)指針運(yùn)算符:(指針運(yùn)算符:(* * & &)求字節(jié)數(shù)求字節(jié)數(shù) :(:(sizeofsizeof)強(qiáng)制類型轉(zhuǎn)換:(類型)強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算

35、符:(分量運(yùn)算符:(. -. -)下標(biāo)運(yùn)算符:(下標(biāo)運(yùn)算符:()其它其它 :(:(( ) -( ) -)542.8 運(yùn)算符和表達(dá)式第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算1算術(shù)運(yùn)算符55 例:運(yùn)算 結(jié)果2+3 52-3 -1 2*3 62/3 02.0/3 0.6666662%3 22.0%3 非法第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算56第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算(1) (1) 減法運(yùn)算符減法運(yùn)算符“-”-”可作取負(fù)值運(yùn)算符,這時(shí)為單目運(yùn)算符。例如可作取負(fù)值運(yùn)算符,這時(shí)為單目運(yùn)算符。例如- -(x+y)(x+y)、-10-10等。等。(2)

36、 (2) 使用除法運(yùn)算符使用除法運(yùn)算符“/”/”時(shí),若參與運(yùn)算的變量均為整數(shù)時(shí),其結(jié)果時(shí),若參與運(yùn)算的變量均為整數(shù)時(shí),其結(jié)果也為整數(shù)也為整數(shù)( (舍去小數(shù)舍去小數(shù)) );若除數(shù)或被除數(shù)中有一個(gè)為負(fù)數(shù),則舍入的方向;若除數(shù)或被除數(shù)中有一個(gè)為負(fù)數(shù),則舍入的方向是不固定的。例如:是不固定的。例如:-7/4-7/4,在有的機(jī)器上得到結(jié)果為,在有的機(jī)器上得到結(jié)果為-1-1,而有的機(jī)器上,而有的機(jī)器上得到結(jié)果得到結(jié)果-2-2。多數(shù)機(jī)器上采取。多數(shù)機(jī)器上采取“向零取整向零取整”原則,例如:原則,例如:7/4=17/4=1,- -7/4=-17/4=-1,取整后向零靠攏。,取整后向零靠攏。注意事項(xiàng):注意事項(xiàng):

37、57第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算(3) (3) 使用求余運(yùn)算符使用求余運(yùn)算符( (模運(yùn)算符模運(yùn)算符)“%”)“%”時(shí),要求參與運(yùn)算的變量必須均時(shí),要求參與運(yùn)算的變量必須均為整型,其結(jié)果值為兩數(shù)相除所得的余數(shù)。一般情況下,所得的余數(shù)與為整型,其結(jié)果值為兩數(shù)相除所得的余數(shù)。一般情況下,所得的余數(shù)與被除數(shù)符號(hào)相同。例如:被除數(shù)符號(hào)相同。例如:7%4=37%4=3,10%5=010%5=0,-8%5=-3-8%5=-3,8%-5=38%-5=3。58第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算2 2算術(shù)表達(dá)式算術(shù)表達(dá)式 用運(yùn)算符、圓括號(hào)將運(yùn)算對(duì)象連接起來的符合用運(yùn)算符、

38、圓括號(hào)將運(yùn)算對(duì)象連接起來的符合C C語法規(guī)則的式子語法規(guī)則的式子,稱為,稱為表達(dá)式表達(dá)式。 用算術(shù)運(yùn)算符、圓括號(hào)將運(yùn)算對(duì)象用算術(shù)運(yùn)算符、圓括號(hào)將運(yùn)算對(duì)象( (或稱操作數(shù)或稱操作數(shù)) )連接起來的符合連接起來的符合C C語法規(guī)則的式子,稱為語法規(guī)則的式子,稱為算術(shù)表達(dá)式算術(shù)表達(dá)式。其中運(yùn)算對(duì)象可以是常量、變。其中運(yùn)算對(duì)象可以是常量、變量、函數(shù)等。量、函數(shù)等。 例如:例如: a a* *b/c-1.5+ab/c-1.5+a59第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算C C算術(shù)表達(dá)式的書寫形式與數(shù)學(xué)中表達(dá)式的書寫形式是有區(qū)別的,算術(shù)表達(dá)式的書寫形式與數(shù)學(xué)中表達(dá)式的書寫形式是有區(qū)別的,在使

39、用時(shí)要注意以下幾點(diǎn):在使用時(shí)要注意以下幾點(diǎn):(1) C(1) C表達(dá)式中的乘號(hào)不能省略。例如:表達(dá)式中的乘號(hào)不能省略。例如:數(shù)學(xué)式數(shù)學(xué)式b2-4acb2-4ac,相應(yīng)的,相應(yīng)的C C表達(dá)式應(yīng)寫成表達(dá)式應(yīng)寫成b b* *b-4b-4* *a a* *c c。(2) C(2) C表達(dá)式中只能使用系統(tǒng)允許的標(biāo)識(shí)符。例如:表達(dá)式中只能使用系統(tǒng)允許的標(biāo)識(shí)符。例如:數(shù)學(xué)式數(shù)學(xué)式rr2 2相應(yīng)的相應(yīng)的C C表達(dá)式應(yīng)寫成表達(dá)式應(yīng)寫成3.143.14* *r r* *r r。60第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算(3) C(3) C表達(dá)式中的內(nèi)容必須書寫在同一行,不允許有分表達(dá)式中的內(nèi)容必須書

40、寫在同一行,不允許有分子分母形式,必要時(shí)要利用圓括號(hào)保證運(yùn)算的順序。例子分母形式,必要時(shí)要利用圓括號(hào)保證運(yùn)算的順序。例如:如:數(shù)學(xué)式相應(yīng)的數(shù)學(xué)式相應(yīng)的C C表達(dá)式應(yīng)寫表達(dá)式應(yīng)寫(a+b)/(c+d)(a+b)/(c+d)。(4) (4) C C表達(dá)式不允許使用方括號(hào)和花括號(hào)表達(dá)式不允許使用方括號(hào)和花括號(hào),只能使用圓,只能使用圓括號(hào)幫助限定運(yùn)算順序??梢允褂枚鄬訄A括號(hào),但左右括號(hào)幫助限定運(yùn)算順序??梢允褂枚鄬訄A括號(hào),但左右括號(hào)必須配對(duì),運(yùn)算時(shí)從內(nèi)層圓括號(hào)開始,由內(nèi)向外依括號(hào)必須配對(duì),運(yùn)算時(shí)從內(nèi)層圓括號(hào)開始,由內(nèi)向外依次計(jì)算表達(dá)式的值。次計(jì)算表達(dá)式的值。61第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表

41、示及數(shù)據(jù)運(yùn)算3 3算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性C C語言規(guī)定了在表達(dá)式求值過程中各運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。語言規(guī)定了在表達(dá)式求值過程中各運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。(1) (1) 優(yōu)先級(jí)優(yōu)先級(jí):是指當(dāng)一個(gè)表達(dá)式中如果有多個(gè)運(yùn)算符時(shí),則計(jì)算是有先后次序:是指當(dāng)一個(gè)表達(dá)式中如果有多個(gè)運(yùn)算符時(shí),則計(jì)算是有先后次序的,這種計(jì)算的先后次序稱為運(yùn)算符的優(yōu)先級(jí)。的,這種計(jì)算的先后次序稱為運(yùn)算符的優(yōu)先級(jí)。(2) (2) 結(jié)合性結(jié)合性:是指當(dāng)一個(gè)運(yùn)算對(duì)象兩側(cè)的運(yùn)算符的優(yōu)先級(jí)別相同時(shí),進(jìn)行運(yùn)算:是指當(dāng)一個(gè)運(yùn)算對(duì)象兩側(cè)的運(yùn)算符的優(yōu)先級(jí)別相同時(shí),進(jìn)行運(yùn)算的結(jié)合方向。按的結(jié)合方向。按“從右向左從右向

42、左”的順序運(yùn)算,稱為右結(jié)合性;按的順序運(yùn)算,稱為右結(jié)合性;按“從左向右從左向右”的的順序運(yùn)算,稱為左結(jié)合性。表順序運(yùn)算,稱為左結(jié)合性。表2.62.6中給出了算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。中給出了算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。62第第2 2章章 數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算數(shù)據(jù)表示及數(shù)據(jù)運(yùn)算例例2.9 算術(shù)運(yùn)算符算術(shù)運(yùn)算符/和和%舉例。程序代碼如下:舉例。程序代碼如下:#include void main() int x,y; x=10; y=3; printf(%dn,x/y); printf(%dn,x%y); x=1; y=2; printf(%dn,x/y); printf(%dn,x%y);自增、自

43、減運(yùn)算符自增、自減運(yùn)算符 自增、自減運(yùn)算符可以用在運(yùn)算量之前自增、自減運(yùn)算符可以用在運(yùn)算量之前( (如如+i+i、-i)-i),稱為,稱為前置前置運(yùn)算;自增、自減運(yùn)算;自增、自減運(yùn)算符可以用在運(yùn)算量之后運(yùn)算符可以用在運(yùn)算量之后( (如如+i+i、-i)-i),稱為,稱為后置后置運(yùn)算。運(yùn)算。 簡(jiǎn)單規(guī)則(以簡(jiǎn)單規(guī)則(以+為例):為例): 前置前置先自加,后引用先自加,后引用 后置后置先引用,后自加先引用,后自加 int i=3,j; int i=3,j;int i=3,j; int i=3,j; j=+i; j=i+; j=+i; j=i+;例2.10 以下程序的輸出結(jié)果是( )。#include

44、void main () int i=010,j=10; printf(%d ,+i); printf(%dn,j- -); A)11 10 B)9 10 C)010 9 D)10 9賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式 1賦值運(yùn)算賦值運(yùn)算 賦值符號(hào)“=”就是賦值運(yùn)算符,由賦值運(yùn)算符組成的表達(dá)式稱為賦值表達(dá)式。其一般形式為: 變量名變量名 = 表達(dá)式表達(dá)式 賦值的含義是指將賦值運(yùn)算符右邊的表達(dá)式的值存放存放到以左邊變量名為標(biāo)識(shí)的存儲(chǔ)單元中。 說明:(1) 賦值運(yùn)算符的左邊必須是變量,右邊的表達(dá)式可以是常量、變量或表達(dá)式。例如,下面都是合法的賦值表達(dá)式: x = 10 y = x+10

45、y = func()(2) 賦值符號(hào)“=”不同于數(shù)學(xué)中使用的等號(hào),它沒有相等的含義。例如x=x+1;的含義是取出變量x中的值加1后,再存入變量x中去。(3) 在一個(gè)賦值表達(dá)式中,可以出現(xiàn)多個(gè)賦值運(yùn)算符,結(jié)合性是自右至左的。例如,下面是合法的賦值表達(dá)式: x = y = z = 0 /* 相當(dāng)于x = (y = (z = 0)*/ a = b = 3 + 5 /* 相當(dāng)于a = (b = 3 + 5) */(4) 進(jìn)行賦值運(yùn)算時(shí),當(dāng)賦值運(yùn)算符兩邊的數(shù)據(jù)類型不同時(shí),將由系統(tǒng)自動(dòng)進(jìn)行類型轉(zhuǎn)換。 如: int i; float f; i=3.14; /* 等價(jià)于i=3,截取整數(shù)部分3 ,不四舍五入*/

46、 f=3; /* 等價(jià)于f=3.0,填充小數(shù)部分.0 */復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符 為了提高編譯生成的可執(zhí)行代碼的執(zhí)行效率,C語言規(guī)定可以在賦值運(yùn)算符“=”之前加上其他運(yùn)算符,以構(gòu)成復(fù)合賦值運(yùn)算符。 其一般形式為: 變量變量 雙目運(yùn)算符雙目運(yùn)算符 = 表達(dá)式表達(dá)式 等價(jià)于:變量 = 變量 雙目運(yùn)算符 表達(dá)式; 例如: n += 1 /* 等價(jià)于n = n + 1 */ x *= y+1 /* 等價(jià)于x = x * (y+1)*/ /*+的優(yōu)先級(jí)高于=/( (這樣寫法與這樣寫法與“逆波蘭式逆波蘭式”一致,有利于編譯,能產(chǎn)生質(zhì)量較高一致,有利于編譯,能產(chǎn)生質(zhì)量較高的目標(biāo)代碼。學(xué)過編譯原理后對(duì)此較容易理解。的目標(biāo)代碼。學(xué)過編譯原理后對(duì)此較容易理解。) )賦值表達(dá)式賦值表達(dá)式 由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來的式子稱為“賦值表達(dá)式”。一般形式為: 變量變量 = 表達(dá)式表達(dá)式賦值表達(dá)式的求解過程如下: (1)先求解賦值運(yùn)算符右側(cè)

溫馨提示

  • 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)論