




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1第 3 章 數(shù)據(jù)類型、運(yùn)算符及表達(dá)式p 基本數(shù)據(jù)類型的存儲(chǔ)方式和表示方式基本數(shù)據(jù)類型的存儲(chǔ)方式和表示方式p 不同類型間數(shù)據(jù)轉(zhuǎn)換的原則與方法不同類型間數(shù)據(jù)轉(zhuǎn)換的原則與方法p 有關(guān)運(yùn)算符與表達(dá)式的運(yùn)用有關(guān)運(yùn)算符與表達(dá)式的運(yùn)用2 一個(gè)一個(gè)C C程序是由一個(gè)或多個(gè)函數(shù)組成,函數(shù)體由程序是由一個(gè)或多個(gè)函數(shù)組成,函數(shù)體由若干條若干條C C語(yǔ)句組成,那么,語(yǔ)句組成,那么,C C語(yǔ)句又是由什么組成?語(yǔ)句又是由什么組成?思考思考主函數(shù)主函數(shù)函數(shù)函數(shù)nC語(yǔ)句語(yǔ)句1C語(yǔ)句語(yǔ)句2C語(yǔ)句語(yǔ)句n關(guān)鍵字關(guān)鍵字標(biāo)識(shí)符標(biāo)識(shí)符字符集字符集C程程序序3注意:所有關(guān)鍵字都要用小寫英文字母表示,注意:所有關(guān)鍵字都要用小寫英文字母表示
2、,且不允許被用作標(biāo)識(shí)符使用!且不允許被用作標(biāo)識(shí)符使用!autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile4w 標(biāo)識(shí)符標(biāo)識(shí)符是由英文字母、數(shù)字及下劃線構(gòu)成的是由英文字母、數(shù)字及下劃線構(gòu)成的字符串,并且字符串,并且首字符首字符必須為字母或下劃線。必須為字母或下劃線。w 用來(lái)標(biāo)識(shí)常量、變量、函數(shù)名、數(shù)組名、類用來(lái)標(biāo)識(shí)常量、
3、變量、函數(shù)名、數(shù)組名、類型定義符等。型定義符等。w 注意:注意:關(guān)鍵字關(guān)鍵字是用戶標(biāo)識(shí)符的禁區(qū)!是用戶標(biāo)識(shí)符的禁區(qū)!w 命名原則:見(jiàn)名知意!命名原則:見(jiàn)名知意!大小寫大小寫有區(qū)別!有區(qū)別!w 不同不同C C語(yǔ)言版本允許的長(zhǎng)度不一樣語(yǔ)言版本允許的長(zhǎng)度不一樣 ANSI CANSI C為為8 8個(gè)字符個(gè)字符 Turbo C Turbo C 為為32325練習(xí):請(qǐng)找出不合法的標(biāo)識(shí)符.unionabc_1232ab3 d+babc8*INTstu_bc8abcdefghi-s10*&%$#abc.1236 字符集指的是程序設(shè)計(jì)語(yǔ)言中所采用的各種符號(hào)的集合,字符集指的是程序設(shè)計(jì)語(yǔ)言中所采用的各種符號(hào)的集合
4、,如字母、數(shù)字、標(biāo)點(diǎn)符號(hào)、運(yùn)算符號(hào)等。如字母、數(shù)字、標(biāo)點(diǎn)符號(hào)、運(yùn)算符號(hào)等。 字符是組成語(yǔ)言的最基本的元素。字符是組成語(yǔ)言的最基本的元素。C C語(yǔ)言字符集語(yǔ)言字符集7數(shù)組數(shù)組結(jié)構(gòu)結(jié)構(gòu) struct聯(lián)合聯(lián)合 union基本類型基本類型構(gòu)造類型構(gòu)造類型指針類型指針類型空類型空類型void整型整型int字符型字符型char實(shí)型實(shí)型(浮點(diǎn)型浮點(diǎn)型)單精度型單精度型 float雙精度型雙精度型double枚舉類型枚舉類型在程序中對(duì)用到的所有數(shù)據(jù)都必在程序中對(duì)用到的所有數(shù)據(jù)都必須指定其數(shù)據(jù)類型須指定其數(shù)據(jù)類型8&常量的定義:常量的定義: 在程序執(zhí)行過(guò)程中值不發(fā)生改變的量。在程序執(zhí)行過(guò)程中值不發(fā)生改變的量。&
5、常量的分類:常量的分類:v 按按數(shù)據(jù)類型數(shù)據(jù)類型分類分類整型常量整型常量 4 -3 037 0 xff4 -3 037 0 xff實(shí)型常量實(shí)型常量 -0.001 128.8 1.25e-3 -0.001 128.8 1.25e-3 字符常量字符常量 1 1 a a D D v 按按表現(xiàn)形態(tài)表現(xiàn)形態(tài)分類分類字面常量或直接常量字面常量或直接常量符號(hào)常量符號(hào)常量關(guān)于常量關(guān)于常量9& 概念概念& 定義形式定義形式v 含義清楚含義清楚v 在需要改變一個(gè)常量時(shí)能做到一在需要改變一個(gè)常量時(shí)能做到一改全改改全改v 一般用大寫字母表示一般用大寫字母表示& 符號(hào)常量在程序中的應(yīng)用符號(hào)常量在程序中的應(yīng)用#defin
6、e PI 3.1415926#include void main( ) float r,a,c; r=2.5; a=PI*r*r; c=2*PI*r;printf(“r=%f,a=%f;c=%fn”,r,a,c);10關(guān)于變量關(guān)于變量& 變量的定義變量的定義 變量是程序執(zhí)行過(guò)程中其值可以改變的量。變量是程序執(zhí)行過(guò)程中其值可以改變的量。& 變量的分類變量的分類 整型變量整型變量 實(shí)型變量實(shí)型變量 字符變量字符變量& 變量的命名變量的命名( (同標(biāo)識(shí)符的命名同標(biāo)識(shí)符的命名) )& 變量的使用變量的使用v 先定義后使用,每一個(gè)變量指定為一確定類型先定義后使用,每一個(gè)變量指定為一確定類型v 含義清楚含
7、義清楚 count name daycount name dayv 一般用小寫字母表示一般用小寫字母表示11- 十進(jìn)制數(shù)十進(jìn)制數(shù) 如:如:12、345、0 - 八進(jìn)制數(shù)八進(jìn)制數(shù)(以以0開(kāi)頭開(kāi)頭) 如:如:012、045- 十六進(jìn)制數(shù)十六進(jìn)制數(shù)(0 x開(kāi)頭開(kāi)頭) 如:如:0 x12、0 x345整型常量整型常量0123 ( )100X123 ( )100XFF ( )1083255291例例 30000為為int型型 65536為為long int型型例例 12與與12L整型常量的類型:整型常量的類型:- 根據(jù)其值所在范圍確定其數(shù)據(jù)類型;根據(jù)其值所在范圍確定其數(shù)據(jù)類型;-在整常量后加字母在整常量
8、后加字母L或或l,認(rèn)為它是,認(rèn)為它是long int型常量。型常量。十進(jìn)制無(wú)符號(hào)整常數(shù)的范圍為十進(jìn)制無(wú)符號(hào)整常數(shù)的范圍為065535,有符號(hào)數(shù)為有符號(hào)數(shù)為3276832767八進(jìn)制無(wú)符號(hào)數(shù)的表示范圍為八進(jìn)制無(wú)符號(hào)數(shù)的表示范圍為00177777十六進(jìn)制無(wú)符號(hào)數(shù)的表示范圍為十六進(jìn)制無(wú)符號(hào)數(shù)的表示范圍為0X00XFFFF12整型常量舉例整型常量舉例#include void main( ) printf(“%d,%o,%xn”,123,123,123); printf(“%d,%o,%xn”,023,023,023); printf(“%d,%o,%xn”,0 x12,0 x12,0 x12);例:
9、整型常量的不同進(jìn)制表示。例:整型常量的不同進(jìn)制表示。%d,%o,%x是輸入輸出是輸入輸出的格式字符串的格式字符串d表示十進(jìn)制表示十進(jìn)制o表示八進(jìn)制表示八進(jìn)制x表示十六進(jìn)制表示十六進(jìn)制13 分分 類類l基本型基本型(int) l短整型短整型(short int、short)l長(zhǎng)整型長(zhǎng)整型(long int、long)l無(wú)符號(hào)型無(wú)符號(hào)型-無(wú)符號(hào)整型無(wú)符號(hào)整型(unsigned int)-無(wú)符號(hào)短整型無(wú)符號(hào)短整型(unsigned short)-無(wú)符號(hào)長(zhǎng)整型無(wú)符號(hào)長(zhǎng)整型(unsigned long)整型變量整型變量取值范圍取值范圍-3276832767 -3276832767-21億億21億億065
10、535065535 042億億所占位數(shù)所占位數(shù)16163216163214整型變量在內(nèi)存中存儲(chǔ)整型變量在內(nèi)存中存儲(chǔ)高字節(jié)低字節(jié)符號(hào)位符號(hào)位 0 0表示正整數(shù)表示正整數(shù) 1 1 表示負(fù)整數(shù)表示負(fù)整數(shù)采用補(bǔ)碼表示采用補(bǔ)碼表示v 正整數(shù)補(bǔ)碼與原碼相同正整數(shù)補(bǔ)碼與原碼相同v 負(fù)整數(shù)補(bǔ)碼負(fù)整數(shù)補(bǔ)碼 = = 原碼(取反)原碼(取反)+1+1例如例如 47 0 x2F原碼原碼 0000,0000,0010,1111取反取反 1111,1111,1101,0000加加1得到得到 - 47的補(bǔ)碼的補(bǔ)碼 1111,1111,1101,0001取值范圍:取值范圍:-215 215-1 -327683276715整型
11、變量定義整型變量定義l 定義形式定義形式 數(shù)值類型數(shù)值類型 變量名表;變量名表;l 說(shuō)明說(shuō)明- 數(shù)值類型數(shù)值類型即類型說(shuō)明符即類型說(shuō)明符intint、shortshort、longlong等。等。- 變量名表變量名表可為一個(gè)或多個(gè)可為一個(gè)或多個(gè)變量名,之間用逗號(hào)間隔。變量名,之間用逗號(hào)間隔。- 變量被定義后,其取值范變量被定義后,其取值范圍也被確定。圍也被確定。#include void main( ) int a,b,c; a=4; b=5; c=a*b; printf(“a*b=%dn”,c);等價(jià)于:int a;int b;int c;16#include void main( )int
12、 a,b; a=32767; b=a+1; printf(“%d,%d”,a,b);運(yùn)行結(jié)果:運(yùn)行結(jié)果:32767,327680 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1a:b:1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0整型數(shù)據(jù)的溢出整型數(shù)據(jù)的溢出32767-32768溢出不報(bào)錯(cuò)溢出不報(bào)錯(cuò)會(huì)出現(xiàn)不可預(yù)料后果會(huì)出現(xiàn)不可預(yù)料后果17使用整型數(shù)據(jù)時(shí)的注意事項(xiàng):使用整型數(shù)據(jù)時(shí)的注意事項(xiàng):3.3. 其值在其值在-2-231312 23131-1-1內(nèi),而在內(nèi),而在-2-215152 21515-1-1外的整數(shù)只可賦值外的整數(shù)只可賦值給給longlong int a;
13、 a=111111; int a; a=111111; 不報(bào)錯(cuò)但結(jié)果不對(duì)不報(bào)錯(cuò)但結(jié)果不對(duì)4.4. 常量無(wú)常量無(wú)unsignedunsigned型,但一個(gè)非負(fù)整數(shù)可賦值給型,但一個(gè)非負(fù)整數(shù)可賦值給unsignedunsigned型型整數(shù)變量整數(shù)變量 , ,但要注意值的范圍。但要注意值的范圍。 unsigned a; a=unsigned a; a=10; 10; 不報(bào)錯(cuò)但結(jié)果不對(duì)不報(bào)錯(cuò)但結(jié)果不對(duì)183.4 3.4 浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)l 浮點(diǎn)型常量浮點(diǎn)型常量即實(shí)數(shù)。以十進(jìn)制形式表示。即實(shí)數(shù)。以十進(jìn)制形式表示。l 表示形式表示形式小數(shù)形式:小數(shù)形式:由數(shù)字和小數(shù)點(diǎn)組成由數(shù)字和小數(shù)點(diǎn)組成 如如1.5
14、6、 - 0.231指數(shù)形式指數(shù)形式( (科學(xué)計(jì)數(shù)法科學(xué)計(jì)數(shù)法) ):小數(shù)小數(shù)E(E(或或e)e)整數(shù)整數(shù) “小數(shù)小數(shù)”表示實(shí)數(shù)的數(shù)值位,即尾數(shù)部分。表示實(shí)數(shù)的數(shù)值位,即尾數(shù)部分。 “E E”代表十進(jìn)制數(shù)的基數(shù)代表十進(jìn)制數(shù)的基數(shù)1010。 “整數(shù)整數(shù)”表示表示1010的乘冪。的乘冪。浮點(diǎn)型常量浮點(diǎn)型常量1.231.2310103 33.918e-23.918e-21.23E31.23E33.9183.9181010-2-2注意:字母注意:字母E之前必須之前必須有數(shù)字!有數(shù)字!19 分分 類類l基本型基本型(int) l短整型短整型(short int、short)l長(zhǎng)整型長(zhǎng)整型(long in
15、t、long)l無(wú)符號(hào)型無(wú)符號(hào)型-無(wú)符號(hào)整型無(wú)符號(hào)整型(unsigned int)-無(wú)符號(hào)短整型無(wú)符號(hào)短整型(unsigned short)-無(wú)符號(hào)長(zhǎng)整型無(wú)符號(hào)長(zhǎng)整型(unsigned long)整型變量整型變量取值范圍取值范圍-3276832767 -3276832767-21億億21億億065535065535 042億億所占位數(shù)所占位數(shù)16163216163220浮點(diǎn)型變量浮點(diǎn)型變量 分分 類類l單精度單精度(float) l雙精度雙精度(double)l長(zhǎng)長(zhǎng)雙精度雙精度(long double)有效數(shù)字有效數(shù)字7位 1516位 1819位所占位數(shù)所占位數(shù)3264128變量的定義變量的定
16、義float x,y; float x,y; / /* *指定指定x,yx,y為單精度浮點(diǎn)型變量為單精度浮點(diǎn)型變量* */ /double z; double z; / /* *指定指定z z為雙精度浮點(diǎn)型變量為雙精度浮點(diǎn)型變量* */ /浮點(diǎn)型常量不分浮點(diǎn)型常量不分單、雙精度,都按雙精度單、雙精度,都按雙精度double處理處理。一個(gè)浮。一個(gè)浮點(diǎn)型常量可以賦給一個(gè)點(diǎn)型常量可以賦給一個(gè)float型或型或double型,根據(jù)變量的類型截型,根據(jù)變量的類型截取浮點(diǎn)型常量中相應(yīng)的有效位數(shù)字。取浮點(diǎn)型常量中相應(yīng)的有效位數(shù)字。如:如:float a;a=123456.123;21浮點(diǎn)型數(shù)據(jù)的舍入誤差浮點(diǎn)
17、型數(shù)據(jù)的舍入誤差由于浮點(diǎn)型變量的存儲(chǔ)單元有限,因而小數(shù)部分的有效由于浮點(diǎn)型變量的存儲(chǔ)單元有限,因而小數(shù)部分的有效數(shù)字是有限的,超過(guò)部分將舍去。數(shù)字是有限的,超過(guò)部分將舍去。/*例例3.4*/#include void main( )float a,b; a=123456.789E5; b=a+20; printf(“%f”,b);運(yùn)行結(jié)果:運(yùn)行結(jié)果:12345678848.000000l 避免大數(shù)與很小數(shù)直接加減避免大數(shù)與很小數(shù)直接加減l 判斷兩個(gè)浮點(diǎn)型變量是否相等,判斷兩個(gè)浮點(diǎn)型變量是否相等,是判斷二者的差的絕對(duì)值是否小是判斷二者的差的絕對(duì)值是否小于一個(gè)很小的數(shù)于一個(gè)很小的數(shù)223.5 3.
18、5 字符型數(shù)據(jù)字符型數(shù)據(jù)l 概念:概念:指用指用單引號(hào)單引號(hào)( (撇號(hào)撇號(hào)) )括起來(lái)的括起來(lái)的單個(gè)單個(gè)字符。字符。 例例 a a b b = = 5 5l 字符常量的值:字符常量的值:該字符的該字符的ASCIIASCII碼值碼值字符常量字符常量l 字符常量的分類字符常量的分類-一般字符常量一般字符常量 x ? a A 2-轉(zhuǎn)義字符常量轉(zhuǎn)義字符常量 以一個(gè)反斜杠以一個(gè)反斜杠“ ”開(kāi)頭的字符序開(kāi)頭的字符序列,有特定含義。列,有特定含義。ASCII碼(見(jiàn)教材碼(見(jiàn)教材P364附錄附錄A)8 位位對(duì)字符編碼,對(duì)字符編碼, 碼值碼值0-255 032 為控制字符(不可印刷字符)為控制字符(不可印刷字符
19、) 33-255為可印刷字符為可印刷字符 128-255 為擴(kuò)展為擴(kuò)展ASCII碼碼23轉(zhuǎn)義字符常量表轉(zhuǎn)義字符常量表101 - A 012 - n376 - x61 - a060 - 0 483 - ()字符形式字符形式功能功能bb退格退格(Backspace)(Backspace)tt橫向跳格橫向跳格vv豎向跳格豎向跳格nn換行換行rr回車不換行回車不換行ff換頁(yè)換頁(yè)表示反斜杠表示反斜杠 表示表示 ( (單引號(hào)單引號(hào)) )dddddd用三位八進(jìn)制數(shù)表任意字符用三位八進(jìn)制數(shù)表任意字符(ASCII(ASCII值值) )xhhxhh用兩位十六進(jìn)制數(shù)表示任意字符用兩位十六進(jìn)制數(shù)表示任意字符(ASCI
20、I(ASCII值值) )24#include void main( ) printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C);運(yùn)行結(jié)果:運(yùn)行結(jié)果:(屏幕顯示屏幕顯示)A B CI say:”How are you?”C ProgramTurbo C例例 #include void main( )printf(“Yb=n”);運(yùn)行結(jié)果:運(yùn)行結(jié)果:屏幕顯示:屏幕顯示:=打印機(jī)輸出:打印機(jī)輸出:轉(zhuǎn)義字符的使用轉(zhuǎn)義字符的使用25運(yùn)行結(jié)果:屏幕顯示:屏幕顯示:屏幕輸出在后面的字符會(huì)取代原來(lái)
21、屏幕上屏幕輸出在后面的字符會(huì)取代原來(lái)屏幕上該位置上顯示的字符該位置上顯示的字符#include void main( ) printf(“_ab_ct_derftgn); printf(htibbj_k);fg d ehjk打印機(jī)輸出:打印機(jī)輸出:f a bcg d ehj i k轉(zhuǎn)義字符的使用轉(zhuǎn)義字符的使用26字符變量字符變量l字符變量用來(lái)存字符變量用來(lái)存放字符常量。放字符常量。l一個(gè)字符變量只一個(gè)字符變量只能存放一個(gè)字符能存放一個(gè)字符常量。常量。l一個(gè)字符變量在一個(gè)字符變量在內(nèi)存中占用內(nèi)存中占用一個(gè)一個(gè)字節(jié)字節(jié)的空間。的空間。l字符變量的定義格式:字符變量的定義格式: char char
22、變量名表;變量名表;l字符變量的賦值:字符變量的賦值: 變量名字符常量;變量名字符常量; 變量名整型數(shù)據(jù);變量名整型數(shù)據(jù);l舉例:舉例:char cchar c;char ch1,ch2;char ch1,ch2;c=97;ch1=c=97;ch1=B B;ch2=;ch2=C C; ;27#include void main( )char c1,c2;c1=97;c2=98;printf(“%c,%cn”,c1,c2);printf(“%d,%dn”,c1,c2);#include void main( )char c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;prin
23、tf(“%c,%c”,c1,c2);運(yùn)行結(jié)果:運(yùn)行結(jié)果:A,B運(yùn)行結(jié)果:運(yùn)行結(jié)果:a,b97,9828變量初始化變量初始化:定義時(shí)賦初值定義時(shí)賦初值變量的使用:變量的使用:先定義,后使用先定義,后使用變量定義位置:一般放在函數(shù)開(kāi)頭變量定義位置:一般放在函數(shù)開(kāi)頭例: int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1;例1 int student; stadent=19; /Undefined symbol statent in function main 例2 float a,b,c; c=a%b; /Illegal use o
24、f floating point in function main #include void main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data);變量定義可執(zhí)行語(yǔ)句#include void main() int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%fn”,data);29#define PRICE 12.5#include void main( )int num=3; float total; char ch1,ch2=D
25、; total=num*PRICE; ch1=ch2-A+a; printf(“total=%f,ch1=%cn”,total,ch1);變量定義變量定義宏定義宏定義輸出結(jié)果輸出結(jié)果運(yùn)行結(jié)果:total=37.500000, ch1=d30l 概念:字符串常量是指用一對(duì)概念:字符串常量是指用一對(duì)括起來(lái)的括起來(lái)的。如。如“ HelloHello”、 “goodgood”等。等。l 字符串常量的存儲(chǔ):字符串常量的存儲(chǔ):-系統(tǒng)系統(tǒng)在字符串的末尾加上一個(gè)字符串結(jié)束標(biāo)在字符串的末尾加上一個(gè)字符串結(jié)束標(biāo)記記00,以此判斷字符串是否結(jié)束。,以此判斷字符串是否結(jié)束。-程序中長(zhǎng)度為程序中長(zhǎng)度為n n個(gè)字符的字符
26、串常量,在內(nèi)存中個(gè)字符的字符串常量,在內(nèi)存中需要用需要用n+1n+1個(gè)字節(jié)空間來(lái)存儲(chǔ)它。個(gè)字節(jié)空間來(lái)存儲(chǔ)它。字符串常量字符串常量string01151161141051101030例字符串例字符串“stringstring”的存儲(chǔ)的存儲(chǔ)31 如:如:a a是字符常量,而是字符常量,而“a a”是字符串常量。是字符串常量。如:如:a a在內(nèi)存中只占在內(nèi)存中只占1 1個(gè)字節(jié),個(gè)字節(jié),“a a”則需占用則需占用2 2個(gè)字節(jié)空個(gè)字節(jié)空間。間。如:如:ch=ch=a a 是正確的;而是正確的;而ch=ch=“a a” 不正確。不正確。32允許定義變量的同時(shí)使變量初始化允許定義變量的同時(shí)使變量初始化例如例
27、如: int a=3; 等價(jià)于等價(jià)于 int a; a=3;允許只對(duì)其中一部分變量賦初值允許只對(duì)其中一部分變量賦初值例如:例如:int a=3,b,c=4; 若有幾個(gè)變量初值相同,必須分別賦值若有幾個(gè)變量初值相同,必須分別賦值例如:例如:int a=2,b=2,c=2; 3.6 3.6 變量賦初值變量賦初值int a=b=c=2; 對(duì)字符型變量初始化時(shí),既可以將字符用單引號(hào)對(duì)字符型變量初始化時(shí),既可以將字符用單引號(hào)括起來(lái)直接賦值,也可以使用該字符的括起來(lái)直接賦值,也可以使用該字符的ASCIIASCII碼碼進(jìn)行賦值。進(jìn)行賦值。例如:例如:char ch=A; 等價(jià)于等價(jià)于 char ch=65;
28、33 程序運(yùn)行時(shí),變量的值以程序運(yùn)行時(shí),變量的值以二進(jìn)制二進(jìn)制的形式存的形式存儲(chǔ)在內(nèi)存中。存儲(chǔ)空間的大小由變量的數(shù)據(jù)類儲(chǔ)在內(nèi)存中。存儲(chǔ)空間的大小由變量的數(shù)據(jù)類型決定。型決定。內(nèi)存的編址:內(nèi)存的編址:34不同類型的數(shù)據(jù)混合運(yùn)算,先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。不同類型的數(shù)據(jù)混合運(yùn)算,先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。3.7 3.7 各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算doublefloatlongunsignedintchar, short例例 char ch; int i; float f; double d;ch/i + f*d - (f+i)intdoubledoublein
29、tdoubledoubledoubledouble35q 隱式轉(zhuǎn)換隱式轉(zhuǎn)換v運(yùn)算轉(zhuǎn)換運(yùn)算轉(zhuǎn)換-不同類型數(shù)據(jù)混合運(yùn)算時(shí)不同類型數(shù)據(jù)混合運(yùn)算時(shí)v賦值轉(zhuǎn)換賦值轉(zhuǎn)換-把一個(gè)值賦給與其類型不同的變量時(shí)把一個(gè)值賦給與其類型不同的變量時(shí)v輸出轉(zhuǎn)換輸出轉(zhuǎn)換-輸出時(shí)轉(zhuǎn)換成指定的輸出格式輸出時(shí)轉(zhuǎn)換成指定的輸出格式v函數(shù)調(diào)用轉(zhuǎn)換函數(shù)調(diào)用轉(zhuǎn)換-實(shí)參與形參類型不一致時(shí)轉(zhuǎn)換實(shí)參與形參類型不一致時(shí)轉(zhuǎn)換q 顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換)顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換) 一般形式:(類型名)(表達(dá)式)一般形式:(類型名)(表達(dá)式) 例例 (int)(x+y) (int)x+y (double)(3/2) (int)3.6(int)(x+y) (in
30、t)x+y (double)(3/2) (int)3.6說(shuō)明:強(qiáng)制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變說(shuō)明:強(qiáng)制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變 可能發(fā)生較高類型向較低類型轉(zhuǎn)換可能發(fā)生較高類型向較低類型轉(zhuǎn)換不同類型數(shù)據(jù)間的轉(zhuǎn)換不同類型數(shù)據(jù)間的轉(zhuǎn)換/*例例3.8*/ #include void main( )float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i);結(jié)果:結(jié)果:x=3.600000 , i=336例如:習(xí)題例如:習(xí)題3.9 (1)x+a%3*(int)(x+y)%2/4x=2.5, a=7, y=4.72.5
31、+7%3*(int)(2.5+4.7)%2/42.5+7%3*(int)(7.2)%2/42.5+1*7%2/42.5+7%2/42.5+1/42.5+02.537按照運(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)算符 =、+=、-=、*=、/=、%= 條件運(yùn)算符條件運(yùn)算符 ? : 逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符 , 指針運(yùn)算符指針運(yùn)算符 *、& 求字節(jié)數(shù)運(yùn)算符求字節(jié)數(shù)運(yùn)算符 sizeof 強(qiáng)制類型轉(zhuǎn)換運(yùn)算符強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 (類型)(類型) 分量運(yùn)算符分量運(yùn)算符
32、.(點(diǎn)點(diǎn))、 下標(biāo)運(yùn)算符下標(biāo)運(yùn)算符 其他函數(shù)調(diào)用運(yùn)算符其他函數(shù)調(diào)用運(yùn)算符 ( )附錄附錄CC C 運(yùn)算符簡(jiǎn)介運(yùn)算符簡(jiǎn)介38 按照運(yùn)算對(duì)象分按照運(yùn)算對(duì)象分 單目運(yùn)算符:!單目運(yùn)算符:! 雙目運(yùn)算符:雙目運(yùn)算符:+、- 三目運(yùn)算符:?三目運(yùn)算符:? :39 學(xué)習(xí)運(yùn)算符應(yīng)注意:學(xué)習(xí)運(yùn)算符應(yīng)注意: 運(yùn)算符功能運(yùn)算符功能 與運(yùn)算量關(guān)系與運(yùn)算量關(guān)系要求運(yùn)算量個(gè)數(shù)要求運(yùn)算量個(gè)數(shù)要求運(yùn)算量類型要求運(yùn)算量類型 運(yùn)算符優(yōu)先級(jí)別運(yùn)算符優(yōu)先級(jí)別 結(jié)合方向結(jié)合方向 結(jié)果的類型結(jié)果的類型賦值運(yùn)算符與賦值表達(dá)式賦值運(yùn)算符與賦值表達(dá)式逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式邏輯運(yùn)算符與邏輯表達(dá)式邏輯運(yùn)算符與邏輯表達(dá)式算術(shù)
33、運(yùn)算符與算術(shù)表達(dá)式算術(shù)運(yùn)算符與算術(shù)表達(dá)式優(yōu)先級(jí)別優(yōu)先級(jí)別低低高高關(guān)系運(yùn)算符與關(guān)系表達(dá)式關(guān)系運(yùn)算符與關(guān)系表達(dá)式40例 5/2 = 5/-2 = -5/2.0 =例例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%22-2 -2.51 -110( )基本算術(shù)運(yùn)算符:基本算術(shù)運(yùn)算符: + - * / %q 優(yōu)先級(jí):優(yōu)先級(jí):- - -* * / % / % - -+ - + - 結(jié)合方向:結(jié)合方向:從左向右從左向右q 結(jié)果類型:結(jié)果類型:先數(shù)據(jù)轉(zhuǎn)換再運(yùn)算,若有一個(gè)運(yùn)算數(shù)為實(shí)數(shù),結(jié)果先數(shù)據(jù)轉(zhuǎn)換再運(yùn)算,若有一個(gè)運(yùn)算數(shù)為實(shí)數(shù),結(jié)果是是doubledouble型。型。q 兩整數(shù)相除,結(jié)果為整數(shù);
34、兩整數(shù)相除,結(jié)果為整數(shù);兩個(gè)實(shí)數(shù)相除,結(jié)果為實(shí)數(shù)。兩個(gè)實(shí)數(shù)相除,結(jié)果為實(shí)數(shù)。3.8 3.8 算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式q % % 要求兩側(cè)均為整型數(shù)據(jù)要求兩側(cè)均為整型數(shù)據(jù)注意表達(dá)式:注意表達(dá)式:1/3*31*3/3結(jié)果是否一樣?結(jié)果是否一樣?41例例 j=3; k=+j; j=3; k=+j; j=3; k=j+; j=3; k=j+; j=3; printf( j=3; printf(“%d%d”,+j); ,+j); j=3; printf( j=3; printf(“%d%d”,j+); ,j+); a=3;b=5;c=(+a) a=3;b=5;c=(+a)* *b;
35、b; a=3;b=5;c=(a+) a=3;b=5;c=(a+)* *b; b; /k=4,j=4/k=4,j=4/k=3,j=4/k=3,j=4/4/4/3/3/c=20,a=4/c=20,a=4/c=15,a=4/c=15,a=4自增、自減運(yùn)算符自增、自減運(yùn)算符 + -使變量值加使變量值加1 1或減或減1 1q +i, -i ( +i, -i (在在使用使用i i前,使前,使i i的值加減的值加減1 1)q i+,i- (i+,i- (在在使用使用i i后,使后,使i i的值加減的值加減1 1 )說(shuō)明:說(shuō)明:+ - + - 不能用于常量和表達(dá)式不能用于常量和表達(dá)式, ,只能用于變量。只能用
36、于變量。 如如 5+5+,( (a+b)+a+b)+是不合法的是不合法的結(jié)合方向:結(jié)合方向: 自右向左自右向左優(yōu)先級(jí):優(yōu)先級(jí): - + - - + - - * * / % / % - + -+ -例例 - -i+ i+ -(i+) -(i+) i=3; printf(i=3; printf(“%d%d”,-i+);,-i+);42(1) k=34512 a=6(2) k=3339 a=6例:設(shè)例:設(shè)a=3 a=3 ,若執(zhí)行語(yǔ)句,若執(zhí)行語(yǔ)句k=(a+)+(a+)+(a+)k=(a+)+(a+)+(a+)后的后的k k值為多少?值為多少?turbo c運(yùn)行結(jié)果運(yùn)行結(jié)果例:例:i+j= (i+i+j
37、= (i+)+j +j 還是還是= i+= i+(+j+j)?)?c編譯系統(tǒng)將盡可能多的將多個(gè)字符組成一個(gè)運(yùn)算符,編譯系統(tǒng)將盡可能多的將多個(gè)字符組成一個(gè)運(yùn)算符,并按自左而右的方法并按自左而右的方法為避免誤解最好采取都能理解的方法,寫成(i+)+j;433.9 3.9 賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式簡(jiǎn)單賦值運(yùn)算符簡(jiǎn)單賦值運(yùn)算符 =變量標(biāo)識(shí)符變量標(biāo)識(shí)符= =常量或表達(dá)式常量或表達(dá)式說(shuō)明:說(shuō)明:“”是一個(gè)雙目運(yùn)算符,需要左右兩個(gè)運(yùn)算量。是一個(gè)雙目運(yùn)算符,需要左右兩個(gè)運(yùn)算量。“”是賦值運(yùn)算符,不等于等號(hào),沒(méi)有相等的含是賦值運(yùn)算符,不等于等號(hào),沒(méi)有相等的含義。義。“”左端的運(yùn)算量必須是單個(gè)
38、變量,而不能是表左端的運(yùn)算量必須是單個(gè)變量,而不能是表達(dá)式。達(dá)式。賦值運(yùn)算中,使運(yùn)算符左端的變量具有右端表達(dá)式賦值運(yùn)算中,使運(yùn)算符左端的變量具有右端表達(dá)式的值。的值。44(1)a=a+1;(1)a=a+1;等價(jià)于:等價(jià)于:a+;a+;(2) a=b=c=2; (2) a=b=c=2; 連續(xù)賦值連續(xù)賦值等價(jià)于:等價(jià)于:a=(b=(c=2); a=(b=(c=2); 或者或者: : a=2;b=2;c=2;a=2;b=2;c=2;(3) a=2+(b=3);(3) a=2+(b=3);等價(jià)于:等價(jià)于:b=3;a=2+3=5;b=3;a=2+3=5;(4) a=(b=2)(4) a=(b=2)* *
39、(c=3);(c=3);等價(jià)于:等價(jià)于:b=2;c=3;a=2b=2;c=3;a=2* *3=6;3=6;允許賦允許賦值表達(dá)式中含值表達(dá)式中含有另外的賦值有另外的賦值表達(dá)式,進(jìn)行表達(dá)式,進(jìn)行連續(xù)賦值連續(xù)賦值舉舉 例例45a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符+= = *= /= %= = &= = |=在在“= =”之前加上之前加上其他運(yùn)算其他運(yùn)算符符46賦值表達(dá)式賦值表達(dá)式由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子v結(jié)合方向:自右向左結(jié)合方向:自右向左3=x-2*y;a+b=3;a=b=c=5a=b=c=5a=(b=5)a=(b=5)a=5+(c=6)a=5+(c=6)a=(b=4)+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)a=(b=10)/(c=2)/表達(dá)式值為表達(dá)式值為5 5,a,b,ca,b,c值為值為5 5/ b=5;a=5/ b=5;a=5/表達(dá)式值表達(dá)式值1111,c=6,a=11c=6,a=11/表達(dá)式值表達(dá)式值1010,a=10,b=4,c=6a=10,b=4,c=6/表達(dá)式值表達(dá)式值5 5,a=5,b=10,c=2a=5,b=10,c=2a+=a
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 代辦幫辦服務(wù)活動(dòng)方案
- 代駕公司策劃方案
- 以老帶新活動(dòng)方案
- 儀征聯(lián)心家園活動(dòng)方案
- 任務(wù)抽獎(jiǎng)活動(dòng)方案
- 企業(yè)五四創(chuàng)新活動(dòng)方案
- 企業(yè)黨建年度活動(dòng)方案
- 企業(yè)關(guān)愛(ài)孕婦活動(dòng)方案
- 企業(yè)勞模慰問(wèn)活動(dòng)方案
- 企業(yè)員工漂流活動(dòng)方案
- 質(zhì)量管理體系獲證組織現(xiàn)場(chǎng)監(jiān)督檢查指南(1405稿)
- GB/T 4414-2013包裝鎢精礦取樣、制樣方法
- GB/T 17766-2020固體礦產(chǎn)資源儲(chǔ)量分類
- GB/T 13033.1-2007額定電壓750V及以下礦物絕緣電纜及終端第1部分:電纜
- CB/T 3780-1997管子吊架
- 薩提亞家庭治療模式-課件2
- 萬(wàn)達(dá)廣場(chǎng)裝修手冊(cè)
- 人教版(2019)高中英語(yǔ)必修第三冊(cè) Unit5 the value of money 說(shuō)課課件
- 山西省衛(wèi)生院社區(qū)衛(wèi)生服務(wù)中心信息名單目錄
- 西方經(jīng)濟(jì)學(xué)章節(jié)練習(xí)題題庫(kù)及答案1-16章(全)
- 六年級(jí)下冊(cè)音樂(lè)《藍(lán)色的雅特朗》教案
評(píng)論
0/150
提交評(píng)論