SlideShare a Scribd company logo
第二章  C 的資料處理 王智祥  著 2-1  變數與常數  2-2  資料型態簡介 2-1-1  變數的命名 2-2-1  整數資枓型態 2-2-2  浮點數資料型態 2-2-3  字元資料型態 2-3-1  運算式型態轉換 2-3-2  強制型態轉換 2-2-4  特殊字元表示法 2-4  上機實習課程 2-3  資料型態的轉換方式 2-1-2  變數資料長度 2-1-3  常數
2-1-1  變數的命名 (1)  2-1  變數的命名 P 2-2 在 C 中可以取一個變數名稱(例如 ” tmp” )來代替這個記憶體位址,同時也代表了位址中所儲存的內容。 如下所示: 變數名稱與對應記憶體位址對照表 變數名稱 對應記憶體位址 00000 001AC 變數 變數內容值
2-1-1  變數的命名 (1) 2-1  變數的命名 P 2-3 還可分為宣告後再設值與宣告時設值兩種方式: 例如以下宣告:  資料型態 變數名稱 ;  資料型態 變數名稱 = 初始值 ; int a;  /* 宣告變數 a ,暫時未設值 */ int b=12;  /* 宣告變數 b  並直接設定初值為 12*/
2-1-1  變數的命名 (2) 2-1  變數的命名 P 2-4 變數的命名還必須遵守以下的規則: 變數名稱必須是由「英文字母」、「數字」或者下底線「 _ 」所組成,不過開頭字元可以是英文字母或是底線,但不可以是數字。 變數名稱中間可以有下底線,但是不可以使用 -,*$@… 等符號。 例如: _age  合法 8_age  不合法 538  不合法 榮欽  不合法 apple  合法 ber$123  不合法
2-1-1  變數的命名 (2) 2-1  變數的命名 P 2-4 變數名稱區分大小寫字母,例如 Ave 與 AVE 會視為兩個不同的變數。 不可使用保留字或與函數名稱相同的命名。 以下列出 C 語言的保留字: while volatile void unsigned union typedef switch struct static sizeof signed short return register long int  if goto for float extern enum else double do default continue const char case break auto
2-1-1  變數的命名 (3) 2-1  變數的命名 P 2-4 程式範例: 變數命名與宣告: CH02_01.c
2-1-1  變數的命名 (3) 2-1  變數的命名 P 2-5 執行結果 程式解說 在 第 6~7 行是用來宣告一個沒有設初始值的變數  _a  和  b123 ,而第 8 行則是利用「 , 」符號分隔來宣告多個變數的值。 至於第 12~14 行的  printf()  中使用了  "%d“  格式,功能是做為表示以十進位整數格式來輸出變數的值,這部份將在第三章 C 的基本輸入與輸模式中會有更詳盡說明。
2-1-2  變數資料長度  2-1  變數的命名 P 2-5 在 C 語言中可以使用  sizeof()  函數,來顯示各種資料型態或變數的資料長度。 它的使用格式如下:  sizeof( 變數名稱 );
2-1-2  變數資料長度 2-1  變數的命名 P 2-6 程式範例:  sizeof()  函數的應用:  CH02_02.c
2-1-2  變數資料長度 2-1  變數的命名 P 2-6 執行結果 程式解說 在 第 7~8 行分別宣告整數變數  salary  與單精度浮點數變數  sum ,而在第 10~11 行中利用  sizeof()  函數來輸出這兩個變數所佔用的記憶體空間,單位為位元組( Byte )。
2-1-3  常數 (1)  2-1  變數的命名 P 2-7 常數( Constant )為一個內容值固定,且在程式執行時不會改變的資料數值。 如以下範例所示: 它能夠指定的資料型態有整數、浮點數及字元等。 整數常數: 45 、 -36 、 10005 、 0…. 等 浮點數常數: 0.56 、 -0.003 、 1.234E2… 等 字元常數:’ a’ 、’ A’ 、’ 4’… 等(必須以單引號’’包含)
2-1-3  常數 (1) 2-1  變數的命名 P 2-7 通常在宣告常數時,就給予固定的資料型態和數值。 就是在程式執行過程,使用一個識別字來代表某一個固定值。 宣告方式必須利用修飾詞 const ,格式如下: const  資料型態 常數名稱 = 常數值 ;
2-1-3  常數 (2) 2-1  變數的命名 P 2-8 程式範例: 常數的宣告與應用: CH02_03.c
2-1-3  常數 (2) P 2-8 執行結果 程式解說 第 3 、 8 行分別以兩種方式宣告常數,在以  #define  形式宣告時,請無需宣告資料型態及「 = 」,通常是習慣加在程式最前端的巨集指令區。 第 10~11 行則分別列印出  PI  及半徑為  radius  的圓面積。 2-2  資料型態簡介
2-2-1  整數資料型態 (1)  2-2  資料型態簡介 P 2-9 有號整數  (singed) 在資料型態之前加上 signed 修飾詞,那麼該變數就可以儲存正負數的資料。 如果省略 signed 修飾詞,編譯程式會將該變數視為帶符號整數。  可簡寫為 long -2,147,483,648 ~ 2,147,483,647 4 Byte signed long int 可簡寫為 int -2,147,483,648 ~ 2,147,483,647 4 Byte signed int 可簡寫為 short -32,768 ~ 32,767 2 Byte signed short int 說  明 數值範圍 長度 資料型態
2-2-1  整數資料型態 (2) 2-2  資料型態簡介 P 2-10 無號整數  (unsigned) 由於無號整數不區分正負值,那麼資料長度就可以省下一個位元來表示數值的正 / 負值情形,因此在它的數值範圍中能夠表示更多的正數。  可簡寫為 unsigned long 0 ~ 4,294,967,295 4 Byte unsigned long int 可簡寫為 unsigned 0 ~ 4,294,967,295 4 Byte unsigned int 可簡寫為 unsigned short 0 ~ 65,535 2 Byte unsigned short int 說  明 數值範圍 長度 資料型態
2-2-1  整數資料型態 (3) 程式範例: 整數變數的宣告與輸出: CH02_04.c P 2-10 2-2  資料型態簡介
2-2-1  整數資料型態 (3) P 2-11 2-2  資料型態簡介 執行結果 程式解說 第 7~9 行是分別以  10 、 8 、 16  進位的整數表示法來設定不同長度的整數型態變數,在第 11-13 行則是以格式化字元表示以十進位整數常數輸出及  sizeof()  函數來輸出這三個變數所佔用空間大小。
2-2-2  浮點數資料型態 (1) P 2-11 2-2  資料型態簡介 在 C 語言中,浮點數是用來表示具有小數點的數值。  倍精確浮點數,有效位數 7 位數 2.2*10 -308 ~1.8*10 +308 8 Byte double 單精確浮點數,有效位數 7 位數 1.2*10 -38 ~3.4*10 +38 4 Byte float 說    明 數值範圍 長度 資料型態
2-2-2  浮點數資料型態 (1) P 2-12 2-2  資料型態簡介 浮點數在電腦中有兩種表示方法,一種為一般的小數點表示法,例如  314.159 ;另一種則是以科學浮號的方式來表示,例如  3.14159e+02 。 將變數宣告為浮點數型態的方法如下: float  變數名稱 ; 或 float  變數名稱 = 初始值 ; double  變數名稱 ; 或 double  變數名稱 = 初始值 ;
2-2-2  浮點數資料型態 (2) P 2-10 2-2  資料型態簡介 程式範例: 浮點數變數的宣告與輸出: CH02_05.c
2-2-2  浮點數資料型態 (2) P 2-13 2-2  資料型態簡介 執行結果 程式解說 在第 07 ~ 08 行中分別宣告了兩個單精度與倍精度浮點數型態的數值,接著透過第 10 ~ 13 行的  printf ()函數,將這兩個浮點數分別以一般浮點數及科學符號的表示方式來顯示內容。
2-2-3  字元資料型態 (1) P 2-14 2-2  資料型態簡介 宣告字元變數的方式如下: 除了可以使用字元來指定字元變數值外,您還能夠使用 10 進位、 8 進位及 16 進位的  ASCII  數值來設定,  方式如下: 方式 1 : char  變數名稱 1,  變數名稱 2, ……. ,  變數名稱 N;  /* 宣告字元變數 */ 方式 2 : char  變數名稱  = ' 字元 ' ;  /* 宣告並初始化字元變數 */ char  變數名稱 =10 進位 ASCII 碼 ; /* 以 10 進位 ASCII 碼設定字元變數 */ char  變數名稱 = 「 \ 」 8 進位 ASCII 碼 ; /* 八進位 ASCII 碼設定字元變數 */ char  變數名稱 = 「 \x 」 16 進位 ASCII 碼 ; /* 十六進位 ASCII 碼設定字元變數 */
2-2-3  字元資料型態 (2) P 2-14 2-2  資料型態簡介 程式範例: 字元變數的宣告與輸出: CH02_06.c
2-2-3  字元資料型態 (2) P 2-15 2-2  資料型態簡介 執行結果 程式解說 在第 7~10 行是以不同格式來設定字元變數,由於 10 進位的  67  等於  ASCII  碼中的「 C 」、 8 進位  111  則是  ASCII  碼中的「 I 」、而 16 進位的  61  則是對應到  ASCII  碼中「 a 」,因此第 12 、 14 、 15 行的輸出結果分別是  C 、 I 、 a  字元。
2-2-4  特殊字元表示法 (1) P 2-16 2-2  資料型態簡介 十六進位表示的 ASCII 碼,每個 h 表示一個十六進位數字 \xhh 八進位表示的 ASCII 碼,每個 o 表示一個八進位數字 \ooo 顯示反斜線  \ \\ 顯示雙引號  " \" 顯示單引號  ' \' 垂直跳格 \v 水平跳格,相當於按一次 Tab 鍵 \t 返回( carriage return ) \r 換行( newline ) \n 跳頁( form feed ) \f 倒退一格( backspace ) \b 使電腦發出嗶一聲( alarm ) \a 說明 跳脫表示字元
2-2-4  特殊字元表示法 (2) P 2-10 2-2  資料型態簡介 程式範例: 特殊字元的宣告與輸出: CH02_07.c
2-2-4  特殊字元表示法 (2) P 2-16 2-2  資料型態簡介 執行結果 程式解說 第 7~8 行中使用「 \“ 」來在  printf()  函數中顯示「”」符號,以及使用 16 進位表示法來表示每一個字元的  ASCII  碼,並且藉由「 \ 」符號來轉換成字元及輸出。
2-3-1  運算式型態轉換 (1) P 2-17 2-3  資料型態的轉換方式 在 C 編譯器中,對於運算式型態轉換,會依照型態數值範圍大者作為優先轉換的對象,並且如果指定敘述「 = 」兩邊的型態不同,會一律轉換成與左邊變數相同的型態。 當然在這種情形下,要注意執行結果可能會有所改變,例如例如將 float 型態指定給 int 型態,可能會有遺失小數點後的精準度。
2-3-1  運算式型態轉換 (2) 程式範例: 運算式型態轉換的說明與示範: CH02_08.c P 2-17 2-3  資料型態的轉換方式
2-3-1  運算式型態轉換 (2) P 2-18 2-3  資料型態的轉換方式 執行結果 程式解說 在第 11 與 12 行中, C  編譯器會先把變數 i 的資料型態各別轉換成  float  與  double  型態,再執行除法運算。 在程式第 16 行中,將 f 與 d 兩個含有小數的值相加,最後存入整數變數  i ,則小數部份的值被忽略掉。 與原先計算時,含有小數值的結果並不相同,使用時應注意到這個特性。
2-3-2  強制型態轉換 (1) P 2-19 2-3  資料型態的轉換方式 要在運算式中強制的轉換資料型態,可以使用如下的語法。  注意!包含型態名稱的小括號,絕對不可以省略: 強制型態轉換可以用來補強運算式型態轉換無法處理的狀況。  例如底下的情形: ( 資料型態 )  運算式或變數; int i=100, j=3; float Result; Result=i/j;
2-3-2  強制型態轉換 (2) P 2-19 2-3  資料型態的轉換方式 程式範例: 強制型態轉換的說明與示範: CH02_09.c
2-3-2  強制型態轉換 (2) P 2-20 2-3  資料型態的轉換方式 執行結果 程式解說 在第 10 行,由於變數 i 與 j 都是整數變數,算式運算不作型態轉換,只作整數的除法運算,因此浮點數變數 f 的儲存值,只有整數部份。 在第 14 行,使用強制型態轉換,將變數 i 與 j 改以  float  型態作除法運算,運算結果就可包含小數點的數值。
2-4  上機實習課程 (1)  P 2-21 2-4  上機實習課程 補充一下溢位( overflow )的觀念,這會產生個很有趣的現象。 基本上,所謂溢位就是該類型整數的數值超出了可以表示的範圍。 以下 C 程式中宣告了兩個變數  i 、 j ,並將  i 、 j  的值設定為整數與短整數的最大值,分別是  2147483647 、 32767 。  上機實習範例: CH02_10.c
2-4  上機實習課程 (1) P 2-21 上機實習範例: CH02_10.c 執行結果 2-4  上機實習課程
2-4  上機實習課程 (2) P 2-21 2-4  上機實習課程 以下程式範例是宣告一個倍精確度浮點數,接著分別以不同的格式輸出,其中變數  df  雖然是  double  型態,第 11 行中以「 %13.8f 」格式輸出,表示總位數為 13 位,小數部分為 8 位,所以  df  變數的小數位數得以全部顯示。  上機實習範例: CH02_11.c
2-4  上機實習課程 (2) 執行結果  P 2-22 2-4  上機實習課程 上機實習範例: CH02_11.c 執行結果
2-4  上機實習課程 (3) P 2-21 2-4  上機實習課程 以下程式範例是利用 sizeof() 函數來查詢以下資料型態所佔位元組,如  short int 、 long int 、 char 、 float 、 double 。 上機實習範例: CH02_12.c
2-4  上機實習課程 (3) P 2-23 2-4  上機實習課程 上機實習範例: CH02_12.c 執行結果

More Related Content

PPTX
Періодична система елементів Д. Менделєєва та історія її створення
PPTX
Online učenje i kvalitetno upravljanje vremenom.pptx
PPTX
Upravljanje konfliktima
PDF
хімічні рівняння для 7 класу
PDF
Визнання правочинів недійсними: основи теорії та судова практика
PPTX
Внутрішнє рідке середовище організму людини. Склад і функції крові.
PPT
історія вивчення клітини. методи цитологічних досліджень
Періодична система елементів Д. Менделєєва та історія її створення
Online učenje i kvalitetno upravljanje vremenom.pptx
Upravljanje konfliktima
хімічні рівняння для 7 класу
Визнання правочинів недійсними: основи теорії та судова практика
Внутрішнє рідке середовище організму людини. Склад і функції крові.
історія вивчення клітини. методи цитологічних досліджень

Viewers also liked (8)

DOC
3 11英文單字
PPT
計概筆記2
PPT
06 函數與巨集
PPT
08 指標
PPT
09 結構、聯合、列舉與定義型態
PPT
10 檔案說明與處理
PPT
計概筆記1
PPT
C語言 第一章 C語言簡介
3 11英文單字
計概筆記2
06 函數與巨集
08 指標
09 結構、聯合、列舉與定義型態
10 檔案說明與處理
計概筆記1
C語言 第一章 C語言簡介
Ad

Similar to C語言 第二章 02 C的資料處理 (20)

PPT
第02章.ppt第02章.ppt第02章.ppt第02章.ppt第02章.ppt第02章.ppt
PPT
第2章数据类型、运算符和表达式
PPT
Ch10
PDF
Python基本資料運算
PPTX
Chapter2-5 Finite Element Programming.pptx
PPT
第六章 函數與巨集
PPT
第9章 transact sql程序设计
PPT
Ch03
PPT
C語言 第三章 03 運算子、運算元與運算式
PPTX
認識 C++11 新標準及使用 AMP 函式庫作平行運算
PPT
07 陣列與字串
PDF
竞赛中C++语言拾遗
PPT
Ch07
PPT
第11章 目标代码生成
PPT
第7章 语法制导翻译和中间代码生成
PPT
C語言 第五章 程式流程控制
PPT
基本遗传算法
PDF
Python變數與資料運算
DOCX
主备备的两个备机转为双Master出现诡异的slave lag问题
PPT
第6章指针
第02章.ppt第02章.ppt第02章.ppt第02章.ppt第02章.ppt第02章.ppt
第2章数据类型、运算符和表达式
Ch10
Python基本資料運算
Chapter2-5 Finite Element Programming.pptx
第六章 函數與巨集
第9章 transact sql程序设计
Ch03
C語言 第三章 03 運算子、運算元與運算式
認識 C++11 新標準及使用 AMP 函式庫作平行運算
07 陣列與字串
竞赛中C++语言拾遗
Ch07
第11章 目标代码生成
第7章 语法制导翻译和中间代码生成
C語言 第五章 程式流程控制
基本遗传算法
Python變數與資料運算
主备备的两个备机转为双Master出现诡异的slave lag问题
第6章指针
Ad

More from shademoon (13)

PPT
第六章 函數與巨集
PPT
第六章 函數與巨集
PPT
第六章 函數與巨集
PPT
第六章 函數與巨集
PPT
第六章 函數與巨集
PPT
第六章 函數與巨集
PPT
第六章 函數與巨集
PPT
第六章 函數與巨集
PPT
C語言 第五章 Ch05 05
PPT
C語言 第五章 Ch05 18
PPT
C語言 第4章 Ch04 02
PPT
C語言 第4章 Ch04 01
PPT
C語言 第4章 基本輸出與輸入功能
第六章 函數與巨集
第六章 函數與巨集
第六章 函數與巨集
第六章 函數與巨集
第六章 函數與巨集
第六章 函數與巨集
第六章 函數與巨集
第六章 函數與巨集
C語言 第五章 Ch05 05
C語言 第五章 Ch05 18
C語言 第4章 Ch04 02
C語言 第4章 Ch04 01
C語言 第4章 基本輸出與輸入功能

C語言 第二章 02 C的資料處理

  • 1. 第二章 C 的資料處理 王智祥 著 2-1 變數與常數 2-2 資料型態簡介 2-1-1 變數的命名 2-2-1 整數資枓型態 2-2-2 浮點數資料型態 2-2-3 字元資料型態 2-3-1 運算式型態轉換 2-3-2 強制型態轉換 2-2-4 特殊字元表示法 2-4 上機實習課程 2-3 資料型態的轉換方式 2-1-2 變數資料長度 2-1-3 常數
  • 2. 2-1-1 變數的命名 (1) 2-1 變數的命名 P 2-2 在 C 中可以取一個變數名稱(例如 ” tmp” )來代替這個記憶體位址,同時也代表了位址中所儲存的內容。 如下所示: 變數名稱與對應記憶體位址對照表 變數名稱 對應記憶體位址 00000 001AC 變數 變數內容值
  • 3. 2-1-1 變數的命名 (1) 2-1 變數的命名 P 2-3 還可分為宣告後再設值與宣告時設值兩種方式: 例如以下宣告: 資料型態 變數名稱 ; 資料型態 變數名稱 = 初始值 ; int a; /* 宣告變數 a ,暫時未設值 */ int b=12; /* 宣告變數 b 並直接設定初值為 12*/
  • 4. 2-1-1 變數的命名 (2) 2-1 變數的命名 P 2-4 變數的命名還必須遵守以下的規則: 變數名稱必須是由「英文字母」、「數字」或者下底線「 _ 」所組成,不過開頭字元可以是英文字母或是底線,但不可以是數字。 變數名稱中間可以有下底線,但是不可以使用 -,*$@… 等符號。 例如: _age 合法 8_age 不合法 538 不合法 榮欽 不合法 apple 合法 ber$123 不合法
  • 5. 2-1-1 變數的命名 (2) 2-1 變數的命名 P 2-4 變數名稱區分大小寫字母,例如 Ave 與 AVE 會視為兩個不同的變數。 不可使用保留字或與函數名稱相同的命名。 以下列出 C 語言的保留字: while volatile void unsigned union typedef switch struct static sizeof signed short return register long int if goto for float extern enum else double do default continue const char case break auto
  • 6. 2-1-1 變數的命名 (3) 2-1 變數的命名 P 2-4 程式範例: 變數命名與宣告: CH02_01.c
  • 7. 2-1-1 變數的命名 (3) 2-1 變數的命名 P 2-5 執行結果 程式解說 在 第 6~7 行是用來宣告一個沒有設初始值的變數 _a 和 b123 ,而第 8 行則是利用「 , 」符號分隔來宣告多個變數的值。 至於第 12~14 行的 printf() 中使用了 "%d“ 格式,功能是做為表示以十進位整數格式來輸出變數的值,這部份將在第三章 C 的基本輸入與輸模式中會有更詳盡說明。
  • 8. 2-1-2 變數資料長度 2-1 變數的命名 P 2-5 在 C 語言中可以使用 sizeof() 函數,來顯示各種資料型態或變數的資料長度。 它的使用格式如下: sizeof( 變數名稱 );
  • 9. 2-1-2 變數資料長度 2-1 變數的命名 P 2-6 程式範例: sizeof() 函數的應用: CH02_02.c
  • 10. 2-1-2 變數資料長度 2-1 變數的命名 P 2-6 執行結果 程式解說 在 第 7~8 行分別宣告整數變數 salary 與單精度浮點數變數 sum ,而在第 10~11 行中利用 sizeof() 函數來輸出這兩個變數所佔用的記憶體空間,單位為位元組( Byte )。
  • 11. 2-1-3 常數 (1) 2-1 變數的命名 P 2-7 常數( Constant )為一個內容值固定,且在程式執行時不會改變的資料數值。 如以下範例所示: 它能夠指定的資料型態有整數、浮點數及字元等。 整數常數: 45 、 -36 、 10005 、 0…. 等 浮點數常數: 0.56 、 -0.003 、 1.234E2… 等 字元常數:’ a’ 、’ A’ 、’ 4’… 等(必須以單引號’’包含)
  • 12. 2-1-3 常數 (1) 2-1 變數的命名 P 2-7 通常在宣告常數時,就給予固定的資料型態和數值。 就是在程式執行過程,使用一個識別字來代表某一個固定值。 宣告方式必須利用修飾詞 const ,格式如下: const 資料型態 常數名稱 = 常數值 ;
  • 13. 2-1-3 常數 (2) 2-1 變數的命名 P 2-8 程式範例: 常數的宣告與應用: CH02_03.c
  • 14. 2-1-3 常數 (2) P 2-8 執行結果 程式解說 第 3 、 8 行分別以兩種方式宣告常數,在以 #define 形式宣告時,請無需宣告資料型態及「 = 」,通常是習慣加在程式最前端的巨集指令區。 第 10~11 行則分別列印出 PI 及半徑為 radius 的圓面積。 2-2 資料型態簡介
  • 15. 2-2-1 整數資料型態 (1) 2-2 資料型態簡介 P 2-9 有號整數 (singed) 在資料型態之前加上 signed 修飾詞,那麼該變數就可以儲存正負數的資料。 如果省略 signed 修飾詞,編譯程式會將該變數視為帶符號整數。 可簡寫為 long -2,147,483,648 ~ 2,147,483,647 4 Byte signed long int 可簡寫為 int -2,147,483,648 ~ 2,147,483,647 4 Byte signed int 可簡寫為 short -32,768 ~ 32,767 2 Byte signed short int 說  明 數值範圍 長度 資料型態
  • 16. 2-2-1 整數資料型態 (2) 2-2 資料型態簡介 P 2-10 無號整數 (unsigned) 由於無號整數不區分正負值,那麼資料長度就可以省下一個位元來表示數值的正 / 負值情形,因此在它的數值範圍中能夠表示更多的正數。 可簡寫為 unsigned long 0 ~ 4,294,967,295 4 Byte unsigned long int 可簡寫為 unsigned 0 ~ 4,294,967,295 4 Byte unsigned int 可簡寫為 unsigned short 0 ~ 65,535 2 Byte unsigned short int 說  明 數值範圍 長度 資料型態
  • 17. 2-2-1 整數資料型態 (3) 程式範例: 整數變數的宣告與輸出: CH02_04.c P 2-10 2-2 資料型態簡介
  • 18. 2-2-1 整數資料型態 (3) P 2-11 2-2 資料型態簡介 執行結果 程式解說 第 7~9 行是分別以 10 、 8 、 16 進位的整數表示法來設定不同長度的整數型態變數,在第 11-13 行則是以格式化字元表示以十進位整數常數輸出及 sizeof() 函數來輸出這三個變數所佔用空間大小。
  • 19. 2-2-2 浮點數資料型態 (1) P 2-11 2-2 資料型態簡介 在 C 語言中,浮點數是用來表示具有小數點的數值。 倍精確浮點數,有效位數 7 位數 2.2*10 -308 ~1.8*10 +308 8 Byte double 單精確浮點數,有效位數 7 位數 1.2*10 -38 ~3.4*10 +38 4 Byte float 說    明 數值範圍 長度 資料型態
  • 20. 2-2-2 浮點數資料型態 (1) P 2-12 2-2 資料型態簡介 浮點數在電腦中有兩種表示方法,一種為一般的小數點表示法,例如 314.159 ;另一種則是以科學浮號的方式來表示,例如 3.14159e+02 。 將變數宣告為浮點數型態的方法如下: float 變數名稱 ; 或 float 變數名稱 = 初始值 ; double 變數名稱 ; 或 double 變數名稱 = 初始值 ;
  • 21. 2-2-2 浮點數資料型態 (2) P 2-10 2-2 資料型態簡介 程式範例: 浮點數變數的宣告與輸出: CH02_05.c
  • 22. 2-2-2 浮點數資料型態 (2) P 2-13 2-2 資料型態簡介 執行結果 程式解說 在第 07 ~ 08 行中分別宣告了兩個單精度與倍精度浮點數型態的數值,接著透過第 10 ~ 13 行的 printf ()函數,將這兩個浮點數分別以一般浮點數及科學符號的表示方式來顯示內容。
  • 23. 2-2-3 字元資料型態 (1) P 2-14 2-2 資料型態簡介 宣告字元變數的方式如下: 除了可以使用字元來指定字元變數值外,您還能夠使用 10 進位、 8 進位及 16 進位的 ASCII 數值來設定,  方式如下: 方式 1 : char 變數名稱 1, 變數名稱 2, ……. , 變數名稱 N; /* 宣告字元變數 */ 方式 2 : char 變數名稱 = ' 字元 ' ; /* 宣告並初始化字元變數 */ char 變數名稱 =10 進位 ASCII 碼 ; /* 以 10 進位 ASCII 碼設定字元變數 */ char 變數名稱 = 「 \ 」 8 進位 ASCII 碼 ; /* 八進位 ASCII 碼設定字元變數 */ char 變數名稱 = 「 \x 」 16 進位 ASCII 碼 ; /* 十六進位 ASCII 碼設定字元變數 */
  • 24. 2-2-3 字元資料型態 (2) P 2-14 2-2 資料型態簡介 程式範例: 字元變數的宣告與輸出: CH02_06.c
  • 25. 2-2-3 字元資料型態 (2) P 2-15 2-2 資料型態簡介 執行結果 程式解說 在第 7~10 行是以不同格式來設定字元變數,由於 10 進位的 67 等於 ASCII 碼中的「 C 」、 8 進位 111 則是 ASCII 碼中的「 I 」、而 16 進位的 61 則是對應到 ASCII 碼中「 a 」,因此第 12 、 14 、 15 行的輸出結果分別是 C 、 I 、 a 字元。
  • 26. 2-2-4 特殊字元表示法 (1) P 2-16 2-2 資料型態簡介 十六進位表示的 ASCII 碼,每個 h 表示一個十六進位數字 \xhh 八進位表示的 ASCII 碼,每個 o 表示一個八進位數字 \ooo 顯示反斜線 \ \\ 顯示雙引號 " \" 顯示單引號 ' \' 垂直跳格 \v 水平跳格,相當於按一次 Tab 鍵 \t 返回( carriage return ) \r 換行( newline ) \n 跳頁( form feed ) \f 倒退一格( backspace ) \b 使電腦發出嗶一聲( alarm ) \a 說明 跳脫表示字元
  • 27. 2-2-4 特殊字元表示法 (2) P 2-10 2-2 資料型態簡介 程式範例: 特殊字元的宣告與輸出: CH02_07.c
  • 28. 2-2-4 特殊字元表示法 (2) P 2-16 2-2 資料型態簡介 執行結果 程式解說 第 7~8 行中使用「 \“ 」來在 printf() 函數中顯示「”」符號,以及使用 16 進位表示法來表示每一個字元的 ASCII 碼,並且藉由「 \ 」符號來轉換成字元及輸出。
  • 29. 2-3-1 運算式型態轉換 (1) P 2-17 2-3 資料型態的轉換方式 在 C 編譯器中,對於運算式型態轉換,會依照型態數值範圍大者作為優先轉換的對象,並且如果指定敘述「 = 」兩邊的型態不同,會一律轉換成與左邊變數相同的型態。 當然在這種情形下,要注意執行結果可能會有所改變,例如例如將 float 型態指定給 int 型態,可能會有遺失小數點後的精準度。
  • 30. 2-3-1 運算式型態轉換 (2) 程式範例: 運算式型態轉換的說明與示範: CH02_08.c P 2-17 2-3 資料型態的轉換方式
  • 31. 2-3-1 運算式型態轉換 (2) P 2-18 2-3 資料型態的轉換方式 執行結果 程式解說 在第 11 與 12 行中, C 編譯器會先把變數 i 的資料型態各別轉換成 float 與 double 型態,再執行除法運算。 在程式第 16 行中,將 f 與 d 兩個含有小數的值相加,最後存入整數變數 i ,則小數部份的值被忽略掉。 與原先計算時,含有小數值的結果並不相同,使用時應注意到這個特性。
  • 32. 2-3-2 強制型態轉換 (1) P 2-19 2-3 資料型態的轉換方式 要在運算式中強制的轉換資料型態,可以使用如下的語法。  注意!包含型態名稱的小括號,絕對不可以省略: 強制型態轉換可以用來補強運算式型態轉換無法處理的狀況。  例如底下的情形: ( 資料型態 ) 運算式或變數; int i=100, j=3; float Result; Result=i/j;
  • 33. 2-3-2 強制型態轉換 (2) P 2-19 2-3 資料型態的轉換方式 程式範例: 強制型態轉換的說明與示範: CH02_09.c
  • 34. 2-3-2 強制型態轉換 (2) P 2-20 2-3 資料型態的轉換方式 執行結果 程式解說 在第 10 行,由於變數 i 與 j 都是整數變數,算式運算不作型態轉換,只作整數的除法運算,因此浮點數變數 f 的儲存值,只有整數部份。 在第 14 行,使用強制型態轉換,將變數 i 與 j 改以 float 型態作除法運算,運算結果就可包含小數點的數值。
  • 35. 2-4 上機實習課程 (1) P 2-21 2-4 上機實習課程 補充一下溢位( overflow )的觀念,這會產生個很有趣的現象。 基本上,所謂溢位就是該類型整數的數值超出了可以表示的範圍。 以下 C 程式中宣告了兩個變數 i 、 j ,並將 i 、 j 的值設定為整數與短整數的最大值,分別是 2147483647 、 32767 。 上機實習範例: CH02_10.c
  • 36. 2-4 上機實習課程 (1) P 2-21 上機實習範例: CH02_10.c 執行結果 2-4 上機實習課程
  • 37. 2-4 上機實習課程 (2) P 2-21 2-4 上機實習課程 以下程式範例是宣告一個倍精確度浮點數,接著分別以不同的格式輸出,其中變數 df 雖然是 double 型態,第 11 行中以「 %13.8f 」格式輸出,表示總位數為 13 位,小數部分為 8 位,所以 df 變數的小數位數得以全部顯示。 上機實習範例: CH02_11.c
  • 38. 2-4 上機實習課程 (2) 執行結果 P 2-22 2-4 上機實習課程 上機實習範例: CH02_11.c 執行結果
  • 39. 2-4 上機實習課程 (3) P 2-21 2-4 上機實習課程 以下程式範例是利用 sizeof() 函數來查詢以下資料型態所佔位元組,如 short int 、 long int 、 char 、 float 、 double 。 上機實習範例: CH02_12.c
  • 40. 2-4 上機實習課程 (3) P 2-23 2-4 上機實習課程 上機實習範例: CH02_12.c 執行結果