




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第 2 章 常數(shù)變數(shù)與資料型態(tài)在本章中 將 介紹 C 程式 資料型態(tài) 並 配合 常數(shù) 與 變數(shù) 的使用。 電腦有 8 位元、 16 位元、 32 位元 及 64 位元等 的限制, 又整數(shù) 與 浮點(diǎn)的 內(nèi)部 結(jié)構(gòu) 的不同, 其 算術(shù) 運(yùn)算方式 也不相同, 因此 產(chǎn)生 資料型態(tài) 的區(qū)別。 資料 型態(tài) 的 轉(zhuǎn)換 基本上 都 需 加以 申明, 或 呼叫函數(shù) 做 轉(zhuǎn)換, 例如 字元 '9' 轉(zhuǎn)成 整數(shù) 9, 字元 指標(biāo) 與 整數(shù)指標(biāo) 的轉(zhuǎn)換, 有些 則 不需要 做明確的 標(biāo)示, 如 整數(shù) 與 浮點(diǎn) 參雜 在一齊的 算術(shù) 運(yùn)算。變數(shù)的 宣告 必須 表明 其 資料型態(tài), 如此 一來 C 編譯
2、 程式 (compiler) 方能 安排 適當(dāng) 大小的 記憶空間 給 該變數(shù), 並 處理 適當(dāng)?shù)倪\(yùn)算。本 章 主 要 內(nèi) 容 如 下 :· 第 2.1 節(jié) 資料型態(tài)o 第 2.1.1 節(jié) 資料容量o 第 2.1.2 節(jié) 資料內(nèi)部表示· 第 2.2 節(jié) 常數(shù)o 第 2.2.1 節(jié) 字元常數(shù)o 第 2.2.2 節(jié) 字串常數(shù)o 第 2.2.3 節(jié) 整數(shù)常數(shù)o 第 2.2.4 節(jié) 浮點(diǎn)常數(shù)o 第 2.2.5 節(jié) 符號常數(shù)· 第 2.3 節(jié) 變數(shù)· 第 2.4 節(jié)&
3、#160;運(yùn)算子o 第 2.4.1 節(jié) 算術(shù)運(yùn)算子o 第 2.4.2 節(jié) 關(guān)係運(yùn)算子o 第 2.4.3 節(jié) 邏輯運(yùn)算子o 第 2.4.4 節(jié) 位元運(yùn)算子· 第 2.5 節(jié) 資料型態(tài)轉(zhuǎn)換回第 1 章至第 3 章回 C 程式主目錄第 2.1 節(jié) 資料型態(tài)C 的 資料型態(tài) 基本上 可分 為 二大類:1. 基本型態(tài) (basic data types),2. 延伸性型態(tài) (user-defined data types)。在本章中 我們 僅討論 基本 資料型態(tài), 延伸性 型態(tài) 將於 第 7 章 討論。 C 的 基本 資料型態(tài) 有 char (
4、字元), int (整數(shù)), float (浮點(diǎn)), 與 double (倍準(zhǔn)浮點(diǎn))。 此外, 還有 一些 修飾詞 (qualifier), 如 unsigned、 short 及 long 可加在 基本 型態(tài) 之前,例如:unsignedcharc;shortinti, j;longintx, y;unsignedintpositive;longdoublearea;C 語言 基本上 是 沒有 布林 ( boolean ) 資料 型態(tài), 但以 0 當(dāng)做 "假",以 非 0 當(dāng)做 "真"。第 2.1.1 節(jié) 資料容量資料型容量數(shù)值範(fàn)圍輸入/出格式運(yùn)算子c
5、har1 byte-128127%c+, -, *, /, %int2-3276832767%d, %x, %o, %u, %X+, -, *, /, %long4-21474836482147483647%ld, %lx, %lX, %lo, %lu+, -, *, /, %float43.4E-383.4E+38(7位有效)%f, %e, %E, %g, %G+, -, *, /double81.7E-3081.7E+308(15位)%lf, %le, %lg+, -, *, /第 2.1.2 節(jié) 資料內(nèi)部表示char 佔(zhàn)有 8 個(gè) 位元, 即 位元 0、 位元 1、 . 位元 7。 位元
6、 7 為 0 時(shí), 該數(shù) 為 正數(shù), 否則 為 負(fù)數(shù)。int 佔(zhàn)有 16 個(gè) 位元, 即 位元 0、 位元 1、 . 位元 15。 位元 15 為 0 時(shí), 該數(shù) 為 正數(shù), 否則 為負(fù)數(shù)。float 佔(zhàn)有 32 個(gè) 位元, 即 位元 0、 位元 1、 . 位元 31。 位元 0 為 0 時(shí), 該數(shù) 為 正數(shù), 否則 為 負(fù)數(shù)。 位元 1 至 位元 8 表 指數(shù) 大小, 位元 9 至 位元 31 表 分?jǐn)?shù) 大小?;乇菊轮髂夸浀?2.2 節(jié) 常數(shù)C 的常數(shù) 有 字元常數(shù)、 字串常數(shù)、 整數(shù)常數(shù)、 浮點(diǎn)常數(shù) 等。第 2.2.1 節(jié) 字元常數(shù)字元常數(shù)
7、;基本上 有 三種 表示法:1. 一般 均在 字元 前 後 加上 單引號 ('), 如 'a'、 'A'、 '9'、 '+' 等。2. 一些 特殊 控制 字元, 如 跳行、 跳頁、 水平定位、 游標(biāo) 歸位等 均 無法 在螢?zāi)簧?或 印表機(jī) 顯示 出來, 因此 使用 這些 字元時(shí), 必須 用 倒斜線 (), 在其後a. 並 附加 一字元, 如 'n'、 'f'、 't'、 'r'b. 或 附加 三個(gè) 八進(jìn)位 數(shù), 如 '007' (鈴聲)、
8、39;101'(='A');c. 或 附加 x 及 兩個(gè) 十六進(jìn) 位數(shù), 如 'x61'(='a')。例如: char c; c = 'x61' printf("%cn%d", c, c);其輸出為: a 973. 我們 亦可 用 整數(shù) 0 至 255 來表 一字元 常數(shù) 或 用 整數(shù) -128 至 127 來表 一字元 常數(shù)。 這會 牽扯到 變數(shù)的 宣告, 例如:4. unsigned char ch;5. char c;6.7. ch = 224; /* ch = -32 亦可 */8. c = -
9、32; /* c = 224 亦可 */9.10. printf("%c %d %c %d", ch, ch, c, c);其輸出為: 224 -32。在 字串中 (連續(xù) 兩個(gè) 雙引號 "." ) 就無法 使用 整數(shù) 0 至 255 來表 一字元 常數(shù)。 不然, 就要用 倒斜線 ()在 再加上 整數(shù)。第 2.2.2 節(jié) 字串常數(shù)字串 是 由 連續(xù)的 0 個(gè) 或 多個(gè) 字元 並 前後 各加上 一個(gè) 雙引號 (") 所構(gòu)成, 如: "This is a string!", "這是一字串"
10、, "0123n0123tx61n"。第 2.2.3 節(jié) 整數(shù)常數(shù)整數(shù)常數(shù)基本上 有 三種 表示 方式:1. 十 進(jìn)位: 由 0、 1、 . 9 所構(gòu)成, 但 第一個(gè) 數(shù) 不可為 0。例如: -1、 231、 32767 等。2. 八 進(jìn)位: 由 0、 1、 . 7 所構(gòu)成, 第一 個(gè)數(shù) 必須 為 0。例如: -012 (即十進(jìn)位 -10)、 0201 (即十進(jìn)位 129) 等。3. 十六 進(jìn)位: 由 0、 1、 . 9、 A、 B、 C、 D、 E、 F (或 a、 b、 c、 d、 e、 f) 所構(gòu)成, 第一 個(gè)數(shù) 必須 為 0x 或 0X。例如: -0x12(= -1
11、8)、 0XA1(= 161) 等。例如: #define MAXSIZE 100 main() int i = 0xFF; printf("%o %#o %d %x %#x %X %#Xn",i,i,i,i,i,i,i); printf("%d %d %d %dn",MAXSIZE,-0x12,0XA1,32768); printf("%ld %ld ", 0xabcde, 0xabcdeL); printf("%#lx %lXn",0xabcde, 0xabcdeL); 其輸出為 377 0377 255 ff
12、 0xff FF 0XFF 100 -18 161 -32768 703710 703710 0xabcde ABCDE整數(shù)常數(shù) 的 資料 型態(tài) 有 兩種: int 與 long。 整數(shù)常數(shù) 為 long, 其後 要加上 字元 'l' 或 'L', 如 123456l、 32788L、 0xabcdeL (如 上例 所示)。第 2.2.4 節(jié) 浮點(diǎn)常數(shù)浮點(diǎn)常數(shù) 基本上 有 兩種 表示 方式:1. 十 進(jìn)位: 如 -12.4、 3.1415926。2. 科學(xué) 符號: 如 2.34E+02、 0.34e-12。第 2.2.5 節(jié) 符號常數(shù)為了 容易 閱讀
13、及 修改 方便, 常數(shù) 經(jīng)常 以 符號常數(shù) 來代替, 其 宣告 方式 通常是 在 檔案起頭 加上#define 常數(shù)名稱 常數(shù)在 程式中 就用 該常數(shù) 名稱, 例如: #define EOF -1 #define PI 3.1415926 #define e 2.718281828459045 #define EPSILON 0.000001 main() . area = PI * radius * radius; . while (c=getchar() != EOF ) . . . while ( abs( f(x) ) > EPSILON ) . . . 說明: C 編譯器在編譯
14、該程式時(shí), 會先做前置處理, 即將 #define 中所定義的 名稱, 如 PI 和 EPSILON 以 3.1415926 及 0.000001 來代換, 之後 再加以編譯?;乇菊轮髂夸浀?2.3 節(jié) 變數(shù)(variables)變數(shù)宣告語法:資料型態(tài) 變數(shù)名稱, 變數(shù)名稱;變數(shù)宣告處:(1) 在 一個(gè) 檔案 任何 函數(shù) (包括 main) 之前,(2) 在 任一 括號 . 內(nèi)的 起頭。例: char c ='0', C ='c', ch; int i, j, k, sum = 0; long verylong = 123
15、456789; float x, y, z, area = 0.0, radius; double total_area;回本章主目錄第 2.4 節(jié) 運(yùn)算子運(yùn)算子 可分為 算術(shù) 運(yùn)算子、 關(guān)係 運(yùn)算子、 及 邏輯 運(yùn)算子。第 2.4.1 節(jié) 算術(shù)運(yùn)算子算術(shù) 運(yùn)算子 有 下列 六種, 按其 運(yùn)算 優(yōu)先 順序 說明 如下:優(yōu)先順序算術(shù)運(yùn)算子說明1-負(fù)號2*乘2/除2%餘數(shù)3+加3-減第 2.4.2 節(jié) 關(guān)係運(yùn)算子關(guān)係運(yùn)算子 有 下列 六種, 按 其 運(yùn)算 優(yōu)先 順序 說明 如下:優(yōu)先順序關(guān)係運(yùn)算子說明1>大於1<小於1>=大於等於1<=小於等於2=等於2!=不等於第 2.4
16、.3 節(jié) 邏輯運(yùn)算子邏輯運(yùn)算子 有 下列 三種, 按 其 運(yùn)算 優(yōu)先 順序 說明 如下:優(yōu)先順序邏輯運(yùn)算子說明1!非 (not)2&&且 (and)2|或 (or)第 2.4.4 節(jié) 位元運(yùn)算子位元運(yùn)算子 有 下列 幾種, 按 其 運(yùn)算 優(yōu)先 順序 說明 如下:優(yōu)先順序位元運(yùn)算子名稱說明11's complement將0改為1,將1改為02>>right shift將一組字元右移, 如果最左一個(gè)位元為1,則新的最左幾個(gè)位元填入1,若為unsigned,則新的最左位元填入02<<left shift將一組字元左移,新的最右位元填入03&a
17、mp;bitwise AND1&1為1,其餘的情況皆為04bitwise exclusive OR01與10皆為1,其餘的情況皆為05|bitwise OR0|0為0,其餘的情況皆為1假設(shè) ch 為一字元變數(shù),其值為 076,其八個(gè)位元的內(nèi)容為 00111110。c 為一字元變數(shù),其值為 0360,其八個(gè)位元的內(nèi)容為 11110000。 則下列運(yùn)算式及其結(jié)果以八個(gè)位元的內(nèi)容表示如下:運(yùn)算式結(jié)果ch11000001c>>211111100c<<310000000ch&c00110000chc11001110ch|c11111110回本章主目錄第 2.5 節(jié)
18、 資料型態(tài)轉(zhuǎn)換在做 資料型態(tài) 轉(zhuǎn)換時(shí), 儘 可能 避免 將 長形 資料型態(tài) 轉(zhuǎn)成 短形, 例 如 將 long 轉(zhuǎn)成 int。 資料型態(tài) 轉(zhuǎn)換 基本上 有 四種 方式:1. 指派轉(zhuǎn)換、2. 算術(shù)轉(zhuǎn)換、3. 模式轉(zhuǎn)換 (cast) 及4. 函數(shù)轉(zhuǎn)換,其 說明 如下:1. 指派轉(zhuǎn)換: C 自動 將 指派值 轉(zhuǎn)成 等號 左邊 變數(shù)的 資料 型態(tài),如:2. main()3. int i;4. long x = 100000, y=1000;5.6. i = x * y;7. printf("i =%dn", i);8. i = -1691154500L;9. printf(&quo
19、t;i =%dn", i);10. 其輸出為: i =-7936 i =1980說明: -1691154500L 的 二進(jìn)位 表示式 為 1001101100110011 0000011110111100 <- 1980 ->其較低的 兩個(gè) 位元組 的值 為 1980, 因此 對於 指派 敘述i = -1691154500L;經(jīng) 指派 轉(zhuǎn)換 後, 變數(shù) i 的值 為 1980。11. 算術(shù)轉(zhuǎn)換: C 自動 先將 算術(shù)式中 不同 資料 型態(tài)值 轉(zhuǎn)成 相同 資料 型態(tài),再做 算術(shù) 運(yùn)算, 基本上 是 將 容量小的 轉(zhuǎn)成 容量大, 例如:12. int i = 2;13. float x, y;14.15. x = i * 9 / 8 + 32.0;16. y = i * 9 / 8.0 + 32.0;17. printf("%f %fn", x, y);其輸出為: 34.000000 34.250000說明:a. i * 9 / 8 中 每一項(xiàng) 皆 為 整數(shù), 其值 為 2 * 9 / 8 = 3, 小數(shù) 部份的值 被刪除, 剩下 整數(shù) 部份。b. i * 9 / 8.0 中 有一項(xiàng) 為 浮點(diǎn)數(shù) 8.0, 因此, i 及 9 皆被化為 浮點(diǎn)數(shù) 2.0 及 9.0, 再做 浮點(diǎn) 算數(shù)運(yùn)算, 其值 為 2.
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鐵路信號設(shè)備更新改造項(xiàng)目實(shí)施考核試卷
- 石棉水泥制品企業(yè)運(yùn)營管理考核試卷
- 礦產(chǎn)勘查中的勘查設(shè)備維護(hù)與管理考核試卷
- 保健食品營養(yǎng)均衡發(fā)展策略實(shí)施效果考核試卷
- 安全監(jiān)控在物流行業(yè)的應(yīng)用案例分析考核試卷
- 異物卡喉急救處理指南
- 兒科急診常見疾病案例
- 口腔科院感防控與管理體系
- 蚊子傳播疾病機(jī)制與防控
- 麻醉質(zhì)控總結(jié)報(bào)告
- 2025年上半年廣東汕尾市城區(qū)招聘政府聘員69人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025版MCN公司藝人合作簽約合同范本3篇
- 《玻璃體腔注射治療》課件
- GB/T 45098-2024營運(yùn)純電動汽車換電服務(wù)技術(shù)要求
- 2025年中考英語話題作文范文20篇
- 政府經(jīng)濟(jì)學(xué)-電大易考通考試題目答案 (一)
- 公交車駕駛員安全培訓(xùn)
- 山西省云時(shí)代技術(shù)有限公司筆試題庫
- 龍鑫煤礦礦井概況-2
- 國際合作項(xiàng)目管理制度
- 上海市算力基礎(chǔ)設(shè)施發(fā)展報(bào)告2024年
評論
0/150
提交評論