C語言程序設計No.3第3章數(shù)據(jù)類型_第1頁
C語言程序設計No.3第3章數(shù)據(jù)類型_第2頁
C語言程序設計No.3第3章數(shù)據(jù)類型_第3頁
C語言程序設計No.3第3章數(shù)據(jù)類型_第4頁
C語言程序設計No.3第3章數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C C 程序設計程序設計1主主 講講: : 劉懷亮劉懷亮E-mail:E-mail:經(jīng)濟管理學院信息管理系經(jīng)濟管理學院信息管理系C C語言程序設計語言程序設計C Programming LanguageC Programming Language 2第三章第三章 數(shù)據(jù)類型、運算符數(shù)據(jù)類型、運算符與表達式與表達式(第(第3 3講)講)主講主講: :劉懷亮劉懷亮E-mail:E-mail:經(jīng)濟管理學院信息管理系經(jīng)濟管理學院信息管理系C C 程序設計程序設計3數(shù)據(jù)類型、運算符與表達式內容提要內容提要:C C語言的基本元素和數(shù)據(jù)類型語言的基本元素和數(shù)據(jù)類型常量與變量常量與變量各種數(shù)據(jù)類型的常量和變量各

2、種數(shù)據(jù)類型的常量和變量變量賦初值變量賦初值各種類型的數(shù)據(jù)間的混合運算各種類型的數(shù)據(jù)間的混合運算幾種基本運算符及其表達式幾種基本運算符及其表達式C C 程序設計程序設計43.1 C語言的基本元素和數(shù)據(jù)類型一、符號集(字符集)一、符號集(字符集)C語言經(jīng)常使用的基本符號共有以下五種:語言經(jīng)常使用的基本符號共有以下五種:(1)大寫字母:)大寫字母:AZ (2)小寫字母:)小寫字母:az (3)阿拉伯數(shù)字:)阿拉伯數(shù)字:09 (4)下劃線:)下劃線:_(5)標點符號和運算符)標點符號和運算符C C 程序設計程序設計53.1 C C語言的基本元素語言的基本元素和數(shù)據(jù)類型和數(shù)據(jù)類型二、標識符二、標識符 用

3、來標記常量、變量、函數(shù)及文件名的字符序列。用來標記常量、變量、函數(shù)及文件名的字符序列。 標識符的構成規(guī)則:標識符的構成規(guī)則: 以字母(大小寫皆可)或下劃線開頭以字母(大小寫皆可)或下劃線開頭 隨后可跟若干個(包括隨后可跟若干個(包括0個字母、數(shù)字、下劃線)個字母、數(shù)字、下劃線) 標識符的長度各個系統(tǒng)不同,最好不要超過標識符的長度各個系統(tǒng)不同,最好不要超過8個字符個字符 如:如:x y3 _imax ELSE X A_to_B(合法)(合法) 7x int #No bad one reinput(不合法)(不合法)注意注意1 1、區(qū)分大小寫。如、區(qū)分大小寫。如sumsum、SumSum是兩個不同

4、的標識符!是兩個不同的標識符!2 2、最好見名知意!、最好見名知意!如:如:student_name, student_number應變?yōu)椋簯優(yōu)椋?stu_name、stu_numC C 程序設計程序設計63.1 C C語言的基本元素語言的基本元素和數(shù)據(jù)類型和數(shù)據(jù)類型三、關鍵字三、關鍵字 也稱保留字,在也稱保留字,在C語言中有特定的含義,專門語言中有特定的含義,專門用作語言特定的成分的一類標識符。用作語言特定的成分的一類標識符。u保留保留 ANSI 32個個 (詳見(詳見P378 附錄附錄C)u12個編譯預處理命令個編譯預處理命令 define, elif, else, endif, err

5、or, if, ifdef, ifndef, include, line, progma, undefu ()、()、“ ”、(空格)、(空格)auto, break, case, char, const, continue, default, do, double,else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while注

6、意注意所有的關鍵字都有其固定的含義,不能用作其他。所有的關鍵字都有其固定的含義,不能用作其他。所有的關鍵字都必須小寫。所有的關鍵字都必須小寫。如:如:else和和ELSE代表不同的含義。代表不同的含義。elseelse是關鍵字;是關鍵字;ELSEELSE是用戶自定義的標識符。是用戶自定義的標識符。C C 程序設計程序設計73.1 C C語言的基本元素和語言的基本元素和數(shù)據(jù)類型數(shù)據(jù)類型 字符型字符型 charchar 基本類型基本類型 整型整型 int int 單精度單精度 floatfloat 實型實型( (浮點型浮點型) ) 雙精度雙精度 doubledouble 數(shù)組型數(shù)組型 arraya

7、rray 數(shù)據(jù)類型數(shù)據(jù)類型 結構體型結構體型 ( (含位段含位段)struct)struct 構造類型構造類型 共用體型共用體型 unionunion 枚舉型枚舉型 enumenum 自定義型自定義型 typedeftypedef 指針類型指針類型 (pointer)(pointer) 空類型空類型 voidvoid程序程序=算法算法+數(shù)據(jù)結構數(shù)據(jù)結構算法處理的對象是數(shù)據(jù)算法處理的對象是數(shù)據(jù)數(shù)據(jù)結構是數(shù)據(jù)的組織形式數(shù)據(jù)結構是數(shù)據(jù)的組織形式數(shù)據(jù)類型是指數(shù)據(jù)的內在表現(xiàn)形式數(shù)據(jù)類型是指數(shù)據(jù)的內在表現(xiàn)形式 (代碼,存儲,運算)。(代碼,存儲,運算)。C C 程序設計程序設計83.23.2常量和變量一、

8、常量和符號常量一、常量和符號常量1 1、常量:固定值、常量:固定值 不隨程序改變不隨程序改變 常量區(qū)分不同類型常量區(qū)分不同類型( (表達形式表達形式) ) 如:如:1212、3.23.2、a a2 2、符號常量、符號常量 用一個標識符代表的常量用一個標識符代表的常量 定義方法:定義方法: define define 標識符標識符 常量常量# define PRICE 30#include void main ( ) int num,total; num=10; total=num*PRICE; printf(“total=%dn”,total);total300預編譯命令放預編譯命令放在函數(shù)的

9、外面在函數(shù)的外面C C 程序設計程序設計93.23.2常量和變量二、變量二、變量1、變量:其值可改變的量、變量:其值可改變的量 用標識符(變量名)表示用標識符(變量名)表示 在內存中占一定存儲單元在內存中占一定存儲單元 定義方法:定義方法: 類型符類型符 標識符標識符變量變量變量名變量名存儲單元存儲單元表示表示值值如:如:int I,j,imax; char c1,c2,s; float x,root1,root2; double y1,y2;# define PRICE 30#include void main ( ) int num,total; num=10; total=num*PRI

10、CE; printf(“total=%dn”,total);注意注意1 1、合法標識符且見名知其意;、合法標識符且見名知其意;2 2、先定義后使用;不定義不使用;、先定義后使用;不定義不使用;3 3、習慣上,符號常量用大寫,、習慣上,符號常量用大寫,變量名用小寫,方便區(qū)別。變量名用小寫,方便區(qū)別。C C 程序設計程序設計103.3 3.3 整型數(shù)據(jù)一、整型常量一、整型常量1、十進制常數(shù)、十進制常數(shù) 如:如:123、789、02、八進制常數(shù)、八進制常數(shù) 由由07數(shù)字組成,首字符用數(shù)字組成,首字符用0標識。標識。 如:如:0123 即即 (123)83、十六進制常數(shù)、十六進制常數(shù) 由由09,af(

11、AF)組成,最高位用組成,最高位用0 x標識。標識。 如:如:0 x123 即即 (123)16注意:二、八、十、十六進制之間轉化一定掌握。注意:二、八、十、十六進制之間轉化一定掌握。 如:如:30( ? ) 8( ? ) 16C C 程序設計程序設計113.3 3.3 整型數(shù)據(jù)一、整型常量一、整型常量1、十進制常數(shù)、十進制常數(shù) 如:如:123、789、02、八進制常數(shù)、八進制常數(shù) 由由07數(shù)字組成,首字符用數(shù)字組成,首字符用0標識。標識。 如:如:0123 即即 (123)83、十六進制常數(shù)、十六進制常數(shù) 由由09,af(AF)組成,最高位用組成,最高位用0 x標識。標識。 如:如:0 x1

12、23 即即 (123)16注意:注意:二、八、十、十六進制之間轉化一定掌握。二、八、十、十六進制之間轉化一定掌握。 如:如:30(036) 8(0 x1E) 16C C 程序設計程序設計123.3 3.3 整型數(shù)據(jù)二、整型變量二、整型變量1、整型變量在內存中的存放形式、整型變量在內存中的存放形式 數(shù)據(jù)在內存中以二進制的補碼表示:數(shù)據(jù)在內存中以二進制的補碼表示: 10 102、整型變量的分類、整型變量的分類 根據(jù)數(shù)值的范圍將變量定義為三類:根據(jù)數(shù)值的范圍將變量定義為三類: 基本整型基本整型(int)2 短整型短整型(short int)2 長整型長整型(long int)4為充分利用變量的表達范

13、圍,又可將變量定義為:為充分利用變量的表達范圍,又可將變量定義為: 有符號數(shù)有符號數(shù)(signed) (可省略可省略) 無符號數(shù)無符號數(shù)(unsigned)0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 01 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0符號位符號位正數(shù)原碼補碼相同負數(shù)補碼是絕對值取反加1C C 程序設計程序設計133.3 3.3 整型數(shù)據(jù)二、整型變量二、整型變量2 2、整型變量的分類、整型變量的分類 (1)(1)有符號型有符號型 基本型:以基本型:以intint說明,占用說明,占用2 2字節(jié)。如:字節(jié)。如:int i,sumint i,sum 短整型

14、:以短整型:以shot shot intint或或shortshort說明,占用說明,占用2 2字節(jié)。字節(jié)。 如:如:short s,sumshort s,sum 長整型:以長整型:以long long intint或或longlong說明,占用說明,占用4 4字節(jié)。字節(jié)。 如:如:long l,sumlong l,sum C C 程序設計程序設計143.3 3.3 整型數(shù)據(jù)二、整型變量二、整型變量 2 2、整型變量的分類、整型變量的分類 (2)(2)無符號型無符號型( (存放無符號的整數(shù)存放無符號的整數(shù)) ) 無符號整型:以無符號整型:以unsigned intunsigned int或或u

15、nsignedunsigned說明,占說明,占 用用2 2字節(jié)。字節(jié)。 如:如: unsigned ui,sumunsigned ui,sum 無符號短整型:以無符號短整型:以unsigned shortunsigned short說明,占用說明,占用2 2字節(jié)。字節(jié)。 如:如: unsigned short us,sumunsigned short us,sum 無符號長整型:以無符號長整型:以unsigned longunsigned long說明,占用說明,占用4 4字節(jié)。字節(jié)。 如:如: unsigned long ul,sumunsigned long ul,sum P45 P45表

16、表3.23.2給出了各整型數(shù)據(jù)的取值范圍。給出了各整型數(shù)據(jù)的取值范圍。C C 程序設計程序設計153.3 3.3 整型數(shù)據(jù)二、整型變量二、整型變量整數(shù)在存儲單元的存儲情況:以整數(shù)在存儲單元的存儲情況:以13為例為例 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 00 0 0 000 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 00 0 0 00int型short型

17、long型0 0 0 0 0 0 0 0 0 0 0 0 1 1 01unsigned int型unsigned short型unsigned long型0 0 0 0 0 0 0 0 0 0 00 1 1 01符號位符號位C C 程序設計程序設計163.3 3.3 整型數(shù)據(jù)二、整型變量二、整型變量 3、整型變量的定義、整型變量的定義 如:如:int a, b; long num, i, j ; unsigned short c, d;例:不同種類整型數(shù)據(jù)的運算例:不同種類整型數(shù)據(jù)的運算#include Void main( )int a, b, c, d; unsigned u; a=12;

18、 b= -24; u=10; c=a+u; d=b+u; printf(“a+u=%d,b+u=%dn”,c,d);a+u= 22b+u= -12C C 程序設計程序設計173.3 3.3 整型數(shù)據(jù)三、整型常量的類型三、整型常量的類型 值在值在32 76832 768范圍內,認為是范圍內,認為是int型;型; 值在值在2 147 483 648 2 147 483 648范圍內,認范圍內,認為是為是long int型;型; 八進制、十六進制常量的類型根據(jù)數(shù)值的大小可以八進制、十六進制常量的類型根據(jù)數(shù)值的大小可以是整型、無符號整型是整型、無符號整型(065535)、長整型或無符號長、長整型或無符

19、號長整型;整型; 整數(shù)后有后綴整數(shù)后有后綴u或或U,認為是,認為是unsigned型。型。 整數(shù)后有后綴整數(shù)后有后綴l或或L,認為是,認為是long int型型(在嚴格要求類在嚴格要求類型匹配的場合有用,如函數(shù)參數(shù)調用型匹配的場合有用,如函數(shù)參數(shù)調用)。-123 123u -123l 123ul-0123 0123u -0123l 0123ul-0 x123 0 x123u -0 x123l 0 x123ulC C 程序設計程序設計183.4 3.4 實型數(shù)據(jù)一、實型常量一、實型常量 實數(shù)又稱浮點數(shù)。有兩種表示形式實數(shù)又稱浮點數(shù)。有兩種表示形式 1 1、十進制數(shù)形式、十進制數(shù)形式 如:如:0.

20、3450.345、.345.345、345.0345.0、0.00.0、0.0.、.0.0 2 2、指數(shù)形式、指數(shù)形式 如:如:3.45e33.45e3、3.45E3 3.45E3 表示表示3.453.4510103 3 3 3、類型:缺省為、類型:缺省為double;double;后綴為后綴為f f或或F F,為,為floatfloat型;后綴為型;后綴為l l或或L L,為,為long doublelong double型型注意:注意:e e前后必須有數(shù)字,前后必須有數(shù)字,e e后必須為整型數(shù)。后必須為整型數(shù)。如:如:.3e3 3e3 3.e3 3e e3 e0.3.3e3 3e3 3.e

21、3 3e e3 e0.3如:如:3.53.5表示雙精度型表示雙精度型 3.5f3.5f表示單精度型表示單精度型C C 程序設計程序設計193.4 3.4 實型數(shù)據(jù)二、實型變量二、實型變量(取值范圍和值的精度與機器有關取值范圍和值的精度與機器有關) 單精度單精度(float型型):占:占4個字節(jié),個字節(jié),7位有效數(shù)字位有效數(shù)字 (3.4e-38 3.4e+38) 雙精度雙精度(double型型):占:占8個字節(jié),個字節(jié),1516位有效數(shù)字位有效數(shù)字 (1.7e-3.8 1.7e+3.8) long double型:占型:占10個字節(jié),個字節(jié), 1516位有效數(shù)字位有效數(shù)字 (3.4e-4932

22、1.1e+4932) 如:如:float x, y; double a, b, c;C C 程序設計程序設計203.4 3.4 實型數(shù)據(jù)三、實型數(shù)據(jù)的舍入誤差三、實型數(shù)據(jù)的舍入誤差 雖然實型數(shù)據(jù)的表示形式有兩種但在內存中均是以指數(shù)雖然實型數(shù)據(jù)的表示形式有兩種但在內存中均是以指數(shù)形式存放形式存放 若數(shù)據(jù)超過有效位,則被若數(shù)據(jù)超過有效位,則被 舍去,故可能產(chǎn)生誤差。舍去,故可能產(chǎn)生誤差。數(shù)符數(shù)符小數(shù)小數(shù)階符階符指數(shù)指數(shù)例3-4#include Void main( ) float a, b; a=123456.789e5; b=a+20; printf(“a=%f, b=%fn”, a,b);a=

23、12345678848.000000, b=12345678848.000000C C 程序設計程序設計213.5 3.5 字符型數(shù)據(jù)一、字符常量一、字符常量1、用單引號擴起來的一個字符、用單引號擴起來的一個字符如:如:a、A、b、*、2、轉義字符:特殊的字符常量,它們都以、轉義字符:特殊的字符常量,它們都以開頭。開頭。代表一個字符代表一個字符n n 換行符換行符 0 0 空值空值t t 橫向跳格橫向跳格 v v 縱向跳格縱向跳格b b 退格退格 a a 報警報警r r 回車回車 f f 走紙換頁走紙換頁 輸出反斜杠輸出反斜杠 輸出單引號輸出單引號ddd 1ddd 13 3位八進制數(shù)表示的字符

24、位八進制數(shù)表示的字符(ASCII(ASCII碼碼) ) 如:如:101101代表字符代表字符A Axhh 1xhh 12 2位十六進制數(shù)表示的字符位十六進制數(shù)表示的字符(ASCII(ASCII碼碼) ) 如:如:x41x41代表字符代表字符A A輸出格式控制輸出格式控制輸出字符輸出字符C C 程序設計程序設計223.5 3.5 字符型數(shù)據(jù)二、字符變量二、字符變量 字符變量用來存放字符,且只能存放一個字符。字符變量用來存放字符,且只能存放一個字符。 定義方法:定義方法: char c1, c2; unsigned char c3, c4; 字符型變量的賦值方法:字符型變量的賦值方法: c1=a;

25、 c2=101; c3=0 xff; c4=377;25525565AC C 程序設計程序設計233.5 3.5 字符型數(shù)據(jù)三、字符數(shù)據(jù)的存儲三、字符數(shù)據(jù)的存儲1、將一個字符常量存放到、將一個字符常量存放到一個字符變量中,是將該一個字符變量中,是將該字符的相應的字符的相應的ASCII代碼代碼存放到存儲單元中。存放到存儲單元中。 內存中,內存中,c1、c2存放形式:存放形式:例例3.6 3.6 字符的存儲與輸出字符的存儲與輸出include void main( ) char c1, c2; c1=a; c2=b; printf(“%c %cn”, c1,c2); c1=97; c2=98; p

26、rintf(“%c %cn”, c1, c2);a ba b97011000019801100010c1c2C C 程序設計程序設計24注意:注意:Turbo CTurbo C把字符處理成把字符處理成 帶符號的整數(shù)帶符號的整數(shù)3.5 3.5 字符型數(shù)據(jù)三、字符數(shù)據(jù)的存儲三、字符數(shù)據(jù)的存儲2、字符數(shù)據(jù)與整型數(shù)據(jù)可以、字符數(shù)據(jù)與整型數(shù)據(jù)可以 相互賦值相互賦值3、字符數(shù)據(jù)可以以字符形式、字符數(shù)據(jù)可以以字符形式 輸出,輸出, 也可以用整型數(shù)也可以用整型數(shù) 形式形式 輸出輸出字符字符a的存儲形式:的存儲形式:八進制數(shù)八進制數(shù)376(十進制為十進制為254) ASCII碼字符為:碼字符為:void mai

27、n( ) int i; char c; i=a; c=97; printf(“%c,%dn”,i,i); printf(“%c,%dn”,c,c);等同于:等同于:i=97;c=a0 1 10 00 011 1 11 11 10void main( )char c;c=376;printf(“%c, %dn”,c,c);unsigned char c; -2 254C C 程序設計程序設計253.5 3.5 字符型數(shù)據(jù)四、字符串常量四、字符串常量1、字符串常量:用一對雙引號括起來的字符序列、字符串常量:用一對雙引號括起來的字符序列如:如:“hello”, “1999”, “a”2、字符串結束標

28、記、字符串結束標記0每個字符串常量結尾都有一個字符每個字符串常量結尾都有一個字符0(一般情況是一般情況是由系統(tǒng)自動加上由系統(tǒng)自動加上)。如:如:“XIDIAN” 在內存中為:在內存中為:a為一個字符,為一個字符,“a”為兩個字符為兩個字符 a “a”XIDIA N 0aa0C C 程序設計程序設計263.6 3.6 變量賦初值變量賦初值在定義變量的同時設置初值,亦稱在定義變量的同時設置初值,亦稱初始化初始化。 如:如:int a=3; float f=3.56; char c=a; int a, b, c=5; int x=1, y=1, z=1;int x=y=z=1;相當于:相當于:int

29、 a, b, c;c=5;C C 程序設計程序設計273.7 3.7 各類型數(shù)據(jù)間的混合運算各類型數(shù)據(jù)間的混合運算 整型整型、實型實型( (包括單、雙精度包括單、雙精度) )、字符型字符型數(shù)據(jù)間可以數(shù)據(jù)間可以混合運算混合運算 如:如:10+10+a a+1.5+8765.1234+1.5+8765.1234* *x x ( (正確正確) ) 在運算時,不同類型的數(shù)據(jù)要先轉換成同一類型,在運算時,不同類型的數(shù)據(jù)要先轉換成同一類型,然后進行運算然后進行運算 轉換規(guī)則:轉換規(guī)則: 高高 double float double float long long unsigned unsigned 低低

30、int char,shortint char,shortfloatfloat型數(shù)據(jù)在運算時一型數(shù)據(jù)在運算時一律先轉換成律先轉換成doubledouble型型不同類型進行混合運算時不同類型進行混合運算時間,按照類型級別間,按照類型級別由低到由低到高高的順序轉換的順序轉換字符型和字符型和shortshort在運算時一律轉在運算時一律轉換成換成intint型型C C 程序設計程序設計283.8 3.8 算術運算符和算術表達式算術運算符和算術表達式一、一、C C的運算符:的運算符:(具體見教材(具體見教材P56P56) 算術運算符算術運算符 賦值運算符賦值運算符 關系運算符關系運算符 邏輯運算符邏輯運

31、算符 位運算符位運算符 條件運算符條件運算符 逗號運算符逗號運算符 指針運算符指針運算符 強制類型轉換運算符強制類型轉換運算符 分量運算符分量運算符 下標運算符下標運算符 其它其它(注意:教材(注意:教材P378附錄附錄D的運算符和結合性)的運算符和結合性)C C 程序設計程序設計293.8 3.8 算術運算符和算術表達式算術運算符和算術表達式一、一、C C的運算符:的運算符:(具體見教材(具體見教材P55P55) 算術運算符算術運算符 賦值運算符賦值運算符 關系運算符關系運算符 邏輯運算符邏輯運算符 位運算符位運算符 條件運算符條件運算符 逗號運算符逗號運算符 指針運算符指針運算符 強制類型

32、轉換運算符強制類型轉換運算符 分量運算符分量運算符 下標運算符下標運算符 其它其它(注意:教材(注意:教材 P365 附錄附錄III的運算符和的運算符和結合性結合性)同一級別的運算符的運算順序同一級別的運算符的運算順序?C C 程序設計程序設計303.8 3.8 算術運算符和算術表達式算術運算符和算術表達式二、算術運算符和算術表達式二、算術運算符和算術表達式 1 1、基本算術運算符、基本算術運算符(1)(1)+ +( (加法運算符,或正值運算符加法運算符,或正值運算符) ) 如:如:3+53+5、+3+3(2)(2)- -( (減法運算符,或減值運算符減法運算符,或減值運算符) ) 如:如:5

33、-35-3、-3-3(3)(3)* *( (乘法運算符乘法運算符) ) 如:如:3 3* *5 5(4)(4)/ /( (除法運算符除法運算符) ) 如:如:5/35/3、(x+y)/(a+b)(x+y)/(a+b)(5)(5)% %( (模運算符,或求余運算符模運算符,或求余運算符) ):兩側均應為兩側均應為整型數(shù)據(jù)整型數(shù)據(jù) 如:如:7%47%4值為值為3 3 -7%4, 7%-4,-7%-4 -7%4, 7%-4,-7%-4的值為多少?的值為多少?注意:與數(shù)學上的區(qū)別注意:與數(shù)學上的區(qū)別 與與x+y/a+bx+y/a+bx+ya+b優(yōu)先級優(yōu)先級兩個整數(shù)相除,其值為整數(shù)。兩個整數(shù)相除,其值為

34、整數(shù)。 如如5/35/3值為值為1 1除數(shù)、被除數(shù)有一個為負值時,結果除數(shù)、被除數(shù)有一個為負值時,結果“向零取整向零取整” 。 如如-5/3-5/3值為值為-1-1除數(shù)、被除數(shù)有一個為實數(shù)時,結果為除數(shù)、被除數(shù)有一個為實數(shù)時,結果為doubledouble型。型。非非1.66671.6667 -3 3 -3符號由被除數(shù)決定符號由被除數(shù)決定C C 程序設計程序設計313.8 3.8 算術運算符和算術表達式算術運算符和算術表達式2 2、算術表達式和運算符的優(yōu)先級與結合性、算術表達式和運算符的優(yōu)先級與結合性(1)(1)算術表達式:用運算符和括號將運算對象算術表達式:用運算符和括號將運算對象( (也也

35、叫操作數(shù)叫操作數(shù)) )連接起來、符合連接起來、符合C C語法規(guī)則的式子。語法規(guī)則的式子。 運算對象包括常量、變量、函數(shù)等運算對象包括常量、變量、函數(shù)等 如:如:3.143.14* *r r* *r x+sqrt(0.25r x+sqrt(0.25* *y)/(abs(a+b-3.6)y)/(abs(a+b-3.6)(2)(2)運算符的優(yōu)先級和結合性運算符的優(yōu)先級和結合性 優(yōu)先級:優(yōu)先級:先先 * * / / 后后 + -+ - 結合型:結合型:左結合性左結合性,即表達式從左向右進行計算,即表達式從左向右進行計算 (詳見附錄(詳見附錄D D)C C 程序設計程序設計323.8 3.8 算術運算符

36、和算術表達式算術運算符和算術表達式3 3、強制類型轉換、強制類型轉換 可以利用強制類型轉換運算符將一個表達可以利用強制類型轉換運算符將一個表達式轉換成所需類型。式轉換成所需類型。 形式:形式:( (類型名類型名) )表達式表達式 如:如:(double) a(double) a (int)(x+y) (int)(x+y) (float)(8%5) (float)(8%5) 教材教材P57 P57 例例3.83.8注意:與注意:與(int)x+y(int)x+y不同不同只將只將x x轉換成整型,然后與轉換成整型,然后與y y相加相加又如:又如: float x; i=x%3;那么輸出的那么輸出的

37、i的結果是?的結果是?出錯???出錯???原因:要求其兩側均為整型量,所原因:要求其兩側均為整型量,所以應改為以應改為i=i=(int)(int)x x% %y y;(;(運算符優(yōu)先級運算符優(yōu)先級?) )C C 程序設計程序設計333.8 3.8 算術運算符和算術表達式算術運算符和算術表達式三、自增、自減運算符三、自增、自減運算符 + + i, - -i 在使用之前,先使用在使用之前,先使用i的值加的值加1或減或減1 i + +, i - - 在使用之后,使在使用之后,使i的值加的值加1或減或減1注意:注意: 自增、自減運算符只能用于自增、自減運算符只能用于變量變量,而不能,而不能用于常量或表達式

38、。如:用于常量或表達式。如:5+、-(a+b) (不合法不合法)相當于相當于i=i+1,i=i+1,但執(zhí)行的時機不同但執(zhí)行的時機不同例例: :自增自減運算自增自減運算include “stdio.h”void main( ) int i=0, j; j=i+; printf(“%d %dn”,i, j); i=0; j=+i; printf(“%d %dn”,i, j); 1 01 1C C 程序設計程序設計343.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式一、賦值運算符一、賦值運算符“” 形式:形式:變量表達式變量表達式 作用:將表達式的值賦給變量作用:將表達式的值賦給變量 (

39、 (常量、變量是表達式的特例常量、變量是表達式的特例) ) 如:如:a=5;a=5; ave=(a+b)/10 ave=(a+b)/10二、賦值結果與類型轉換二、賦值結果與類型轉換1 1、實型數(shù)據(jù)、實型數(shù)據(jù)( (包括單、雙精度包括單、雙精度) )賦給整型變量時,舍棄實賦給整型變量時,舍棄實數(shù)的小數(shù)部分數(shù)的小數(shù)部分2 2、整型數(shù)據(jù)賦給單、雙精度變量、整型數(shù)據(jù)賦給單、雙精度變量時,數(shù)值不變,但以浮點數(shù)形式時,數(shù)值不變,但以浮點數(shù)形式存儲到變量中存儲到變量中注意:注意:與數(shù)學中的等式不同!與數(shù)學中的等式不同! 數(shù)學中數(shù)學中x=y和和y=x一樣。一樣。#include “stdio.h”void ma

40、in ( ) int i; float f; i=5.34; f=23 printf(“%d %f n”, i, f);5 23.000000C C 程序設計程序設計353.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式二、賦值結果與類型轉換二、賦值結果與類型轉換3 3、長度相同的有符號與無符號整型數(shù)間,原樣賦值、長度相同的有符號與無符號整型數(shù)間,原樣賦值 (但數(shù)值有時會有變化)(但數(shù)值有時會有變化)include “stdio.h”void main( ) unsigned a; int b=-1; a=b; printf(“%d%un”, b, a); a=65534u; b=a

41、; printf(“%d%un”, b, a);1 1 11 11 11 11 11 11 111 1 11 11 11 11 11 11 11ab-165535-2655341 1 11 11 11 11 11 11 101 1 11 11 11 11 11 11 10ab內存中的處理方式內存中的處理方式C C 程序設計程序設計363.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式二、賦值結果與類型轉換二、賦值結果與類型轉換4 4、charchar、intint、longlong等類型的轉換等類型的轉換 (1)(1)“短短”數(shù)據(jù)賦給數(shù)據(jù)賦給“長長”變量變量 符號擴展:若最高位為符號

42、擴展:若最高位為1(1(負數(shù)負數(shù)) ),則變量高字節(jié)位,則變量高字節(jié)位補補1 1;反之,補;反之,補0 0。 4343號字符號字符+ + 5353 i i 254 254號字符號字符376376 i i #include void main ( ) char c; int i;c=43; i=c;printf(“i=%dn”,i);c=376; i=c;printf(“i=%dn”,i);00 10 10 110 0 00 00 00 00 10 10 110 0 00 00 00 00 10 10 1111 11 11 101 1 11 11 11 11 11 11 10i=43i=-2C

43、C 程序設計程序設計373.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式二、賦值結果與類型轉換二、賦值結果與類型轉換4 4、charchar、intint、longlong等類型的轉換等類型的轉換 (2)(2)“長長”數(shù)據(jù)賦給數(shù)據(jù)賦給“短短”變量變量 只將數(shù)據(jù)的低字節(jié)原封不動只將數(shù)據(jù)的低字節(jié)原封不動送到變量中送到變量中( (數(shù)據(jù)有可能有差錯數(shù)據(jù)有可能有差錯) ) L=6324232 L=6324232 a=-32760 a=-32760#include void main( )int i;long L=63242321;i=L;printf(“i=%d, L=%ldn”, i, L);0 0 00 00 00 01 10 00 00 10 00 00 00 00 00 10 001 0 00 00 00 00 00 10 00i=-32760, L=6324232C C 程序設計程序設計383.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式三、復合賦值運算符三、復合賦

溫馨提示

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

評論

0/150

提交評論