C語言數(shù)據(jù)類型及轉(zhuǎn)換_第1頁
C語言數(shù)據(jù)類型及轉(zhuǎn)換_第2頁
C語言數(shù)據(jù)類型及轉(zhuǎn)換_第3頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C語言的數(shù)據(jù)類型C語言提供的數(shù)據(jù)結(jié)構(gòu),是以數(shù)據(jù)類型形式出現(xiàn)的。具體分類如下:1. 基本類型分為整型、實型(又稱浮點型)、字符型和枚舉型四種。2. 構(gòu)造類型分為數(shù)組類型、結(jié)構(gòu)類型和共用類型三種。3. 指針類型。在第9章中介紹。4. 空類型C語言中的數(shù)據(jù),有常量和變量之分,它們分別屬于上述這些類型。 本章將介紹基本類型中的整型、實型和字符型三種數(shù)據(jù)。2.3 常量和變量2.3.1 常量1. 常量的概念在程序運行過程中,其值不能被改變的量稱為常量。2. 常量的分類(1)整型常量(2 )實型常量(3)字符常量。(4)符號常量。常量的類型,可通過書寫形式來判別。2.3.2 變量1. 變量的概念在程序運行過

2、程中,其值可以被改變的量稱為變量。2. 變量的兩個要素(1)變量名。每個變量都必須有一個名字變量名,變量命名遵循標(biāo)識符命名規(guī)則。(2)變量值。在程序運行過程中,變量值存儲在內(nèi)存中。在程序中,通過變量名來引用變 量的值。3. 標(biāo)識符命名規(guī)則(1 )有效字符:只能由字母、數(shù)字和下劃線組成,且以字母或下劃線開頭。(2 )有效長度:隨系統(tǒng)而異,但至少前8個字符有效。如果超長,則超長部分被舍棄。例如,由于student_name和student_number的前8個字符相同,有的系統(tǒng)認(rèn)為這兩個變量, 是一 -回事而不加區(qū)別。在TC V2.0中,變量名(標(biāo)識符)的有效長度為13 2個字符,缺省值為3 2。

3、(3)C語言的關(guān)鍵字不能用作變量名。注意:C語言對英文字母的大小敏感,即同一字母的大小寫,被認(rèn)為是兩個不同的字符。 習(xí)慣上,變量名和函數(shù)名中的英文字母用小寫,以增加可讀性。思考題:在C語言中,變量名 total與變量名TOTAL ToTaL、tOtAl等是同一個變量嗎? 標(biāo)識符命名的良好習(xí)慣一一見名知意:所謂“見名知意”是指, 通過變量名就知道變量值的含義。通常應(yīng)選擇能表示數(shù)據(jù)含義的英文單詞(或縮寫)作變量名,或漢語拼音字頭作變量名。例如,name/xm (姓名)、sex/xb (性別)、age/nl (年齡)、salary/gz (工資)。4. 變量的定義與初始化在C語言中,要求對所有用到的

4、變量,必須先定義、后使用;且稱在定義變量的同時進(jìn)行賦初值的操作為變量初始化。(1)變量定義的一般格式存儲類型數(shù)據(jù)類型變量名,變量名2;例如, float radius, length, area;( 2 )變量初始化的一般格式存儲類型數(shù)據(jù)類型 變量名=初值,變量名2=初值2;例如, float radius=2.5, length, area;2.4 整型數(shù)據(jù)2.4.1 整型變量1. 分類根據(jù)占用內(nèi)存字節(jié)數(shù)的不同,整型變量又分為4類:(1) 基本整型(類型關(guān)鍵字為 int )。(2) 短整型(類型關(guān)鍵字為 short int)。(3) 長整型(類型關(guān)鍵字為long int )。(4) 無符號整

5、型。無符號型又分為無符號基本整型(unsigned int )、無符號短整型(unsigned short)和無符號長整型 ( unsigned long )三種, 只能用來存儲無符號整數(shù)。2. 占用內(nèi)存字節(jié)數(shù)與值域上述各類型整型變量占用的內(nèi)存字節(jié)數(shù),隨系統(tǒng)而異。在 16位操作系統(tǒng)中,一般用2字節(jié)表示一個int型變量,且long型(4字節(jié))int型(2字節(jié))short型(2字 節(jié))。顯然,不同類型的整型變量,其值域不同。占用內(nèi)存字節(jié)數(shù)為n的(有符號)整型變量,其值域為:-2n*8-1 (2n*8-1 -1 );無符號整型變量的值域為:0 (2n*8-1 )。例如,PC機(jī)中的一個int型變量,其

6、值域為-2 2*8-1 (22*8-1 -1 ),即-3276832767 ; 一個 unsigned 型變量的值域為: 0(22*8-1 ),即 065535。2.4.2 整型常量1 .三種表示形式整型常量即整常數(shù),在C語言中可用三種形式表示:(1 )十進(jìn)制。例如 10、 36。(2)八進(jìn)制(以數(shù)字0開頭)。例如 012。(3 )十六進(jìn)制(以數(shù)字0+小寫字母x開頭)。例如0x36。2 . 分類(1)基本整型。在 16位機(jī)中,用 2字節(jié)存儲,其數(shù)據(jù)范圍與 int 型變量一樣。(2)長整型(在數(shù)值后面加“ L( l )”)。對超出基本整型值域的整型常量,可使用長整型常量表示,其取值范圍可達(dá)-2

7、3 1 - ( 2 3 1 - 1 )。例如,123l、315 L等。3. 類型匹配規(guī)則 類型匹配規(guī)則為:一個整型常量,可以賦給能容納下其值的整型變量。 例如,其值在-2 15 - (2 15 - 1)的整型常量,可以賦給int型變量和long int 型變量;其值在-231-(231-1)的整型常量,就只能賦給 long int 型變量。注意 :常量無 unsigned 型。但一個非負(fù)整型常量,只要它的值不超過相應(yīng)變量的值域(即取值范圍),也可以賦給 unsigned 型變量。2.5 實型數(shù)據(jù)2.5.1 實型變量C語言的實型變量,分為兩種:(1) 單精度型。類型關(guān)鍵字為float,一般占4字

8、節(jié)(32位)、提供7位有效數(shù)字。(2) 雙精度型。類型關(guān)鍵字為double,一般占8個字節(jié)、提供1516位有效數(shù)字。2.5.2 實型常量1 .表示形式實型常量即實數(shù),在C語言中又稱浮點數(shù),其值有兩種表達(dá)形式:( 1 )十進(jìn)制形式。例如 3.14 、 9.8 。(2)指數(shù)形式: 尾數(shù)E (e) 整型指數(shù) 。例如3.0 E +5等。2 . 關(guān)于類型實型常量不分 float 型和 double 型。一個實型常量, 可以賦給一個實型變量 ( float 型或 double 型)。2.6 字符型數(shù)據(jù)2.6.1 字符常量1 .字符常量的定義 用一對單引號括起來的單個字符,稱為字符常量。例如, A'

9、、1'、 + '等。2. 轉(zhuǎn)義字符C語言還允許使用一種特殊形式的字符常量,就是以反斜杠“ ”開頭的轉(zhuǎn)義字符。注意 :如果反斜杠或單引號本身作為字符常量,必須使用轉(zhuǎn)義字符:'、 案例 2.1 用轉(zhuǎn)義字符輸出可打印字符和不可打印字符。 案例代碼文件名:程序功能:/*/*AL2_1.C*/用轉(zhuǎn)義字符輸出可打印字符和不可打印字符*/main() printf( printf( 程序運行結(jié)果如下:OK!§? 程序演示 n”n”););/* 等價于 printf( “ OK!n” ); */2.6.2 字符變量字符變量的類型關(guān)鍵字為1.變量值的存儲字符變量用來存儲字符常量

10、。 將一個字符常量存儲到一個字符變量中,該字符的 ASCII 碼值(無符號整數(shù))存儲到內(nèi)存單元中。char ,一般占用1 字節(jié)內(nèi)存單元。實際上是將例如,char ch1, ch2;/* 定義兩個字符變量: ch1 , ch2*/ch1=' a' ; ch2= ' b' ; /* 給字符變量賦值 */ 2. 特性字符數(shù)據(jù)在內(nèi)存中存儲的是字符的ASCII碼一一 一個無符號整數(shù),其形式與整數(shù)的存儲形式一樣(如圖2-4所示),所以C語言允許字符型數(shù)據(jù)與整型數(shù)據(jù)之間通用。1 )一個字符型數(shù)據(jù),既可以字符形式輸出,也可以整數(shù)形式輸出。 案例 2.2 字符變量的字符形式輸出和

11、整數(shù)形式輸出。/* 案例代碼文件名: AL2_2.C*/* 程序功能:用字符形式和整數(shù)形式輸出字符變量 */ main() char ch1,ch2; ch1= a ; ch2= b ; printf( “ch1=%c,ch2=%c n” ,ch1,ch2);printf( “ ch1=%d,ch2=%d n” ,ch1,ch2); 程序運行結(jié)果: ch1=a,ch2=b ch1=97,ch2=98 (2)允許對字符數(shù)據(jù)進(jìn)行算術(shù)運算,此時就是對它們的ASCII 碼值進(jìn)行算術(shù)運算。案例 2.3 字符數(shù)據(jù)的算術(shù)運算。/*案例代碼文件名: AL2_3.C*/* 程序功能:字符數(shù)據(jù)的算術(shù)運算 */ m

12、ain() char ch1,ch2;ch1= a' ; ch2= B'/*字母的大小寫轉(zhuǎn)換 */printf( “ ch1=%c,ch2=%c n” ,ch1 -32,ch2+32);/*用字符形式輸出一個大于256 的數(shù)值 */printf("ch1+200=%dn", ch1+200); printf("ch1+200=%cn", ch1+200); printf("ch1+256=%dn", ch1+256); printf("ch1+256=%cn", ch1+256); 程序運行結(jié)果:

13、ch1=A,ch2=b ch1+200=297 ch1+200=) ch1+256=353 ch1+256=a 程序演示 思考題 :用字符形式輸出一個大于 256 的數(shù)值,會得到什么結(jié)果?2.6.3 字符串常量稱141. 字符串常量的概念和字符串長度 字符串常量是用一對雙引號括起來的若干字符序列。 字符串中字符的個數(shù)稱為字符串長度。 長度為 0 的字符串 (即一個字符都沒有的字符串) 為空串,表示為“ ” (一對緊連的雙引號)。例如,“ How do you do. ”、“ Good morning. ”等,都是字符串常量,其長度分別為 和 13 (空格也是一個字符)。如果反斜杠和雙引號作為字

14、符串中的有效字符,則必須使用轉(zhuǎn)義字符。II例如:(1) C:msdosv6.22 宀"C:msdosv6.22"2) I say:"Goodbye!"2. 字符串的存儲C語言規(guī)定:在存儲字符串常量時,由系統(tǒng)在字符串的末尾自動加一個0'作為字符串的結(jié)束標(biāo)志。注意 :在源程序中書寫字符串常量時,不必加結(jié)束字符0',否則畫蛇添足。如果有一個字符串為“ CHINA,則它在內(nèi)存中的實際存儲如下所示: 最后一個字符0是系統(tǒng)自動加上的,它占用6字節(jié)而非5字節(jié)內(nèi)存空間。 綜上所述,字符常量 A 與字符串常量 "A" 是兩回事:(1)定

15、界符不同:字符常量使用單引號,而字符串常量使用雙引號;(2) 長度不同:字符常量的長度固定為1,而字符串常量的長度,可以是0,也可以是某個整數(shù);(3) 存儲要求不同:字符常量存儲的是字符的ASCII 碼值,而字符串常量,除了要存儲有效的字符外,還要存儲一個結(jié)束標(biāo)志'0'C語言中強制數(shù)據(jù)類型轉(zhuǎn)換字符型變量的值實質(zhì)上是一個 8位的整數(shù)值,因此取值范圍一般是 -128127, char型變量 也可以加修飾符 unsigned,則unsigned char型變量的取值范圍是 0255(有些機(jī)器把char 型當(dāng)做 unsighed char 型對待, 取值范圍總是 0255) 。 如果一

16、個運算符兩邊的運算數(shù)類型不同,先要將其轉(zhuǎn)換為相同的類型,即較低類型轉(zhuǎn)換 為較高類型,然后再參加運算,轉(zhuǎn)換規(guī)則如下圖所示。double <float 高longfunsignedint <char,short 低 圖中橫向箭頭表示必須的轉(zhuǎn)換,如兩個 float 型數(shù)參加運算,雖然它們類型相同,但仍 要先轉(zhuǎn)成 double 型再進(jìn)行運算,結(jié)果亦為 double 型。 縱向箭頭表示當(dāng)運算符兩邊的運算 數(shù)為不同類型時的轉(zhuǎn)換,如一個 long 型數(shù)據(jù)與一個 int 型數(shù)據(jù)一起運算,需要先將 int 型 數(shù)據(jù)轉(zhuǎn)換為 long 型, 然后兩者再進(jìn)行運算,結(jié)果為 long 型。所有這些轉(zhuǎn)換都是由系

17、統(tǒng)自 動進(jìn)行的, 使用時你只需從中了解結(jié)果的類型即可。這些轉(zhuǎn)換可以說是自動的,但然,C語言也提供了以顯式的形式強制轉(zhuǎn)換類型的機(jī)制。 當(dāng)較低類型的數(shù)據(jù)轉(zhuǎn)換為較高類型時, 一般只是形式上有所改變, 而不影響數(shù)據(jù)的實質(zhì)轉(zhuǎn)換的規(guī)則是:把賦值運內(nèi)容, 而較高類型的數(shù)據(jù)轉(zhuǎn)換為較低類型時則可能有些數(shù)據(jù)丟失。 賦值中的類型轉(zhuǎn)換 當(dāng)賦值運算符兩邊的運算對象類型不同時,將要發(fā)生類型轉(zhuǎn)換,算符右側(cè)表達(dá)式的類型轉(zhuǎn)換為左側(cè)變量的類型。具體的轉(zhuǎn)換如下:(1) 浮點型與整型 將浮點數(shù) (單雙精度 )轉(zhuǎn)換為整數(shù)時,將舍棄浮點數(shù)的小數(shù)部分,只保留整數(shù)部分。即小數(shù)點后 帶若干個 0。將整型值賦給浮點型變量,數(shù)值不變,只將形式改為

18、浮點形式, 注意:賦值時的類型轉(zhuǎn)換實際上是強制的。(2) 單、雙精度浮點型由于C語言中的浮點值總是用雙精度表示的,所以float型數(shù)據(jù)只是在尾部加0延長為 doub1e 型數(shù)據(jù)參加運算,然后直接賦值。 doub1e 型數(shù)據(jù)轉(zhuǎn)換為 float 型時,通過截尾數(shù)來 實現(xiàn),截斷前要進(jìn)行四舍五入操作。(3) char 型與 int 型 int 型數(shù)值賦給 char 型變量時,只保留其最低 8 位,高位部分舍棄。 chr 型數(shù)值賦給 int 型變量時, 一些編譯程序不管其值大小都作正數(shù)處理,而另一些編 譯程序在轉(zhuǎn)換時,若 char 型數(shù)據(jù)值大于 127,就作為負(fù)數(shù)處理。對于使用者來講,如果原 來 cha

19、r 型數(shù)據(jù)取正值,轉(zhuǎn)換后仍為正值 ; 如果原來 char 型值可正可負(fù),則轉(zhuǎn)換后也仍然保 持原值, 只是數(shù)據(jù)的內(nèi)部表示形式有所不同。(4) int 型與 1ong 型 long 型數(shù)據(jù)賦給 int 型變量時,將低 16位值送給 int 型變量,而將高 16 位截斷舍棄。 (這里假定 int 型占兩個字節(jié) )。將 int 型數(shù)據(jù)送給 long 型變量時,其外部值保持不變,而內(nèi)部形式有所改變。(5) 無符號整數(shù) 將一個 unsigned 型數(shù)據(jù)賦給一個占據(jù)同樣長度存儲單元的整型變量時 (如:unsigned int、unsigned longlong , unsigned short short)

20、 ,原值照賦,內(nèi)部的存儲方式不變,但外部值卻可能改變。 將一個非 unsigned 整型數(shù)據(jù)賦給長度相同的 unsigned 型變量時, 內(nèi)部存儲形式不變, 但外部表示時總是無符號的。/* 例:賦值運算符舉例 */main() unsigned a,b;int i,j;a=65535;i=-1;j=a;b=i;prin tf("(u nsig ned)%u(in t)%d n",a,j);prin tf("(i nt)%d(un sig ned)%u n",i,b);運行結(jié)果為:(unsigned)65535 (int) -1(int)- 1t (un

21、sig ned)65535 計算機(jī)中數(shù)據(jù)用補碼表示, int 型量最高位是符號位,為 1 時表示負(fù)值,為 0 時表示正 值。如果一個無符號數(shù)的值小于 32768 則最高位為 0,賦給 int 型變量后、得到正值。如果 無符號數(shù)大于等于 32768,則最高位為 1,賦給整型變量后就得到一個負(fù)整數(shù)值。反之, 當(dāng) 一個負(fù)整數(shù)賦給 unsigned 型變量時,得到的無符號值是一個大于 32768 的值。 C 語言這種賦值時的類型轉(zhuǎn)換形式可能會使人感到不精密和不嚴(yán)格,因為不管表達(dá)式的值怎樣,系統(tǒng)都自動將其轉(zhuǎn)為賦值運算符左部變量的類型。 而轉(zhuǎn)變后數(shù)據(jù)可能有所不同, 在不加注意時就可能帶來錯誤。 這確實是個

22、缺點,也遭到 許多人們批評。但不應(yīng)忘記的是: c 面言最初是為了替代匯編語言而設(shè)計的,所以類型變換 比較隨意。當(dāng)然,用強制類型轉(zhuǎn)換是一個好習(xí)慣, 這樣,至少從程序上可以看出想干什么。,在整型、實型和字符型數(shù)C語言規(guī)定,不同類型的數(shù)據(jù)需要轉(zhuǎn)換成同一類型后才可進(jìn)行計算當(dāng)混合不同類型的變量進(jìn)行計算時, 相同類型的數(shù)據(jù)在轉(zhuǎn)換時有規(guī)則可循字符必須先轉(zhuǎn)換為整數(shù)(Cshort型轉(zhuǎn)換為int型(同屬于整型) float型數(shù)據(jù)在運算時一律轉(zhuǎn)換為雙精度 賦值時,一律是右部值轉(zhuǎn)換為左部類型注當(dāng)整型數(shù)據(jù)和雙精度數(shù)據(jù)進(jìn)行運算時, 進(jìn)行運算,結(jié)果為雙精度類型數(shù)據(jù)當(dāng)字符型數(shù)據(jù)和實型數(shù)據(jù)進(jìn)行運算時, 進(jìn)行計算,結(jié)果為實型數(shù)據(jù)

23、便可能會發(fā)生類型轉(zhuǎn)換語言規(guī)定字符類型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用(double)型,以提高運算精度(同屬于實型)C先將整型數(shù)據(jù)轉(zhuǎn)換成雙精度型數(shù)據(jù),再C先將字符型數(shù)據(jù)轉(zhuǎn)換成實型數(shù)據(jù),然后2.4數(shù)據(jù)類型轉(zhuǎn)換在 C語言的表達(dá)式中,準(zhǔn)許對不同類型的數(shù)值型數(shù)據(jù)進(jìn)行某一操作或混合運算。當(dāng)不同類型的數(shù)據(jù)進(jìn)行操作時,應(yīng)當(dāng)首先將其轉(zhuǎn)換成相同的數(shù)據(jù)類型,操作。數(shù)據(jù)類型轉(zhuǎn)換有兩種形式,即隱式類型轉(zhuǎn)換和顯示類型轉(zhuǎn)換。241隱式類型轉(zhuǎn)換所謂隱式類型轉(zhuǎn)換就是在編譯時由編譯程序按照一定規(guī)則自動完成,而不需人為干預(yù)。因此,在表達(dá)式中如果有不同類型的數(shù)據(jù)參與同一運算時, 在編譯時自動按照規(guī)定的規(guī)則將其轉(zhuǎn)換為相同的數(shù)據(jù)類型。C語言

24、規(guī)定的轉(zhuǎn)換規(guī)則是由低級向高級轉(zhuǎn)換。例如,如果一個操作符帶有兩個類型不同的操 作數(shù)時,那么在操作之前行先將較低的類型轉(zhuǎn)換為較高的類型,然后進(jìn)行運算,然后進(jìn)行編譯器就運算結(jié)果是較高的類型。更確切地說,對于每一個算術(shù)運算符,則遵循圖2-2所示的規(guī)則。圖2-2數(shù)據(jù)類型轉(zhuǎn)換規(guī)則之一圖2-2數(shù)據(jù)類型轉(zhuǎn)換規(guī)則之一注意:在表達(dá)式中,所有的 float類型都轉(zhuǎn)換為double型以提高運算精度。在賦值語句中,如果賦值號左右兩端的類型不同,則將賦值號右邊的值轉(zhuǎn)換為賦值號左邊的類型,其結(jié)果類型還是左邊類型。因為函數(shù)參數(shù)是表達(dá)式,因此,當(dāng)參數(shù)傳遞給函數(shù)時,也發(fā)生類型轉(zhuǎn)換。具體地說,char和short均轉(zhuǎn)換為int ;

25、 float轉(zhuǎn)換為double。這就是為什么我們把函數(shù)參數(shù)說明為int和double,盡管調(diào)用函數(shù)時用 char和float .也可以將圖2-2所示的規(guī)則用圖2-3表示。圖2-3中的水平箭頭表示必定轉(zhuǎn)換,縱向箭頭表示兩個操作對象類型不同時的轉(zhuǎn)換方向。flox百 hardw-*iidiatncd叭'1低慢 高盤圖2-3數(shù)據(jù)類型轉(zhuǎn)換規(guī)則之二下面舉行說明類型轉(zhuǎn)換的規(guī)則。例如執(zhí)行:x=100+'a'+1.5 * u+f/'b'-s * 3.1415926其中,u為unsigned型,f為float 型,s為short型,x為float 型。式中右面表達(dá)式按 如下

26、步驟處理:(1) 首先將a'、b'和s換成int,將1.5和f轉(zhuǎn)換為double型。(2) 計算100+'a',因'a'已轉(zhuǎn)換為int型,于是此運算結(jié)果為197。(3) 計算1.5*u,由于1.5已轉(zhuǎn)換為double,u是unsigned型,于是首先u轉(zhuǎn)換為double, 然后進(jìn)行運算,運算結(jié)果為double。(4) 計算 197+1.5 * u ,先將 197 轉(zhuǎn)換為 double (如 197.00 00),其結(jié)果為 double。(5) 計算f/ 'b', f已轉(zhuǎn)換為double , 'b'已轉(zhuǎn)換為int,于

27、是先將'b'再轉(zhuǎn)換為double ,其結(jié)果為double。(6) 計算(197+1.5 * u ) +f / 'b' ,者均為 double,于是結(jié)果也為 double。(7) 計算s * 3.1415926,先將s由int轉(zhuǎn)換為double,然后進(jìn)行運算,其結(jié)果為double。(8) 最后與前面得的結(jié)果相減,結(jié)果為 double。(9) 最后將表達(dá)式的結(jié)果轉(zhuǎn)換為float并賦給x。2.4.2 顯式類型轉(zhuǎn)換顯示類型轉(zhuǎn)換又叫強制類型轉(zhuǎn)換,它不是按照前面所述的轉(zhuǎn)換規(guī)則進(jìn)行轉(zhuǎn)換,而是直接將某數(shù)據(jù)轉(zhuǎn)換成指定的類型。這可在很多情況下簡化轉(zhuǎn)換。例如,int i ;i=i+9

28、.801按照隱式處理方式,在處理 i=i+9.801 時,首先i轉(zhuǎn)換為double型,然后進(jìn)行相加,結(jié)果 為double型,再將double型轉(zhuǎn)換為整型賦給i。int i ;i=i+ (int ) 9.801這時直接將9.801轉(zhuǎn)換成整型,然后與i相加,再把結(jié)果賦給i。這樣可把二次轉(zhuǎn)換簡化為 一次轉(zhuǎn)換。顯示類型轉(zhuǎn)換的方法是在被轉(zhuǎn)換對象(或表達(dá)式)前加類型標(biāo)識符,其格式是:(類型標(biāo)識符)表達(dá)式例如,有如下程序段:main ()int a , b;float c ;b=a+int (c);printf ("b=d% n" , b);在上述程序的運行過程中,在執(zhí)行語句 b=a+i

29、nt (c )時,將 c 的值臨時強制性轉(zhuǎn)化為 int 型,但變量 c 在系統(tǒng)中仍為實型變量, 這一點很重要, 不少初學(xué)者在這個問題上忽略了這個 問題。2.5 運算符和表達(dá)式 2.5.1 運算符和表達(dá)式概述 1表達(dá)式一個表達(dá)式包含一個或多 個操作, 操作的對象稱作運算元 (或叫作操作數(shù)) ,而操作本身通過運算符體現(xiàn)的。 例如 a、 a-b 、c=9.801 等都是一個表達(dá)式。一個表達(dá)式完成一個或多個操作, 最終得到一個結(jié)果, 而結(jié)果的數(shù)據(jù)類型由參加運算的操作 決定。最簡單的表達(dá)式是只含一個常量或變量的表達(dá)式,即只含一個操作數(shù)而不含運算符。C語言中表達(dá)式的種類十分豐富,主要有如下一些:n算術(shù)表達(dá)

30、式:進(jìn)行一般的計算。n賦值表達(dá)式:進(jìn)行賦值操作。n關(guān)系表達(dá)式:進(jìn)行比較判斷。n邏輯表達(dá)式:進(jìn)行邏輯比較判斷。n條件表達(dá)式:進(jìn)行條件滿足與否的判斷。n逗號表達(dá)式:實際上是一種復(fù)雜運算,可以包含多個算術(shù)表達(dá)式。2. C語言的操作符C語言的特點之一是具有豐富和使用靈活的運算符,概括起來它有如下的幾類運算符:n來進(jìn)行運算的)。算術(shù)運算符。賦值運算符(包括符合賦值運算符)。關(guān)系運算符。邏輯運算符。條件運算符。逗號運算符。位運算符。指針運算符。sizeof ()n這些運算符如表強制類型轉(zhuǎn)換運算符。2-4 所示。求字節(jié)運算符(可以歸并到函數(shù)的應(yīng)用中去,它是通過函數(shù)表 2-4 C 語言中的運算符名稱操作符 自增,自減+ +, - - 邏輯與、或、非&&,|,!續(xù)表 2 4名稱操作符 指針操作及引用* ,& 加、減、乘、除、求模運算 +, * , / , % 關(guān)系操作符<,<=,>

溫馨提示

  • 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

提交評論