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 ,[object Object],如下所示: 變數名稱與對應記憶體位址對照表 變數名稱 對應記憶體位址 00000 001AC 變數 變數內容值
2-1-1  變數的命名 (1) 2-1  變數的命名 P 2-3 ,[object Object],[object Object],資料型態 變數名稱 ;  資料型態 變數名稱 = 初始值 ; int a;  /* 宣告變數 a ,暫時未設值 */ int b=12;  /* 宣告變數 b  並直接設定初值為 12*/
2-1-1  變數的命名 (2) 2-1  變數的命名 P 2-4 ,[object Object],[object Object],[object Object],例如: _age  合法 8_age  不合法 538  不合法 榮欽  不合法 apple  合法 ber$123  不合法
2-1-1  變數的命名 (2) 2-1  變數的命名 P 2-4 ,[object Object],[object Object],以下列出 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 ,[object Object]
2-1-1  變數的命名 (3) 2-1  變數的命名 P 2-5 ,[object Object],[object Object],在 第 6~7 行是用來宣告一個沒有設初始值的變數  _a  和  b123 ,而第 8 行則是利用「 , 」符號分隔來宣告多個變數的值。 至於第 12~14 行的  printf()  中使用了  "%d“  格式,功能是做為表示以十進位整數格式來輸出變數的值,這部份將在第三章 C 的基本輸入與輸模式中會有更詳盡說明。
2-1-2  變數資料長度  2-1  變數的命名 P 2-5 ,[object Object],它的使用格式如下:  sizeof( 變數名稱 );
2-1-2  變數資料長度 2-1  變數的命名 P 2-6 ,[object Object]
2-1-2  變數資料長度 2-1  變數的命名 P 2-6 ,[object Object],[object Object],在 第 7~8 行分別宣告整數變數  salary  與單精度浮點數變數  sum ,而在第 10~11 行中利用  sizeof()  函數來輸出這兩個變數所佔用的記憶體空間,單位為位元組( Byte )。
2-1-3  常數 (1)  2-1  變數的命名 P 2-7 ,[object Object],如以下範例所示: ,[object Object],整數常數: 45 、 -36 、 10005 、 0…. 等 浮點數常數: 0.56 、 -0.003 、 1.234E2… 等 字元常數:’ a’ 、’ A’ 、’ 4’… 等(必須以單引號’’包含)
2-1-3  常數 (1) 2-1  變數的命名 P 2-7 ,[object Object],[object Object],[object Object],const  資料型態 常數名稱 = 常數值 ;
2-1-3  常數 (2) 2-1  變數的命名 P 2-8 ,[object Object]
2-1-3  常數 (2) P 2-8 ,[object Object],[object Object],第 3 、 8 行分別以兩種方式宣告常數,在以  #define  形式宣告時,請無需宣告資料型態及「 = 」,通常是習慣加在程式最前端的巨集指令區。 第 10~11 行則分別列印出  PI  及半徑為  radius  的圓面積。 2-2  資料型態簡介
2-2-1  整數資料型態 (1)  2-2  資料型態簡介 P 2-9 ,[object Object],在資料型態之前加上 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 ,[object Object],由於無號整數不區分正負值,那麼資料長度就可以省下一個位元來表示數值的正 / 負值情形,因此在它的數值範圍中能夠表示更多的正數。  可簡寫為 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) ,[object Object],P 2-10 2-2  資料型態簡介
2-2-1  整數資料型態 (3) P 2-11 2-2  資料型態簡介 ,[object Object],[object Object],第 7~9 行是分別以  10 、 8 、 16  進位的整數表示法來設定不同長度的整數型態變數,在第 11-13 行則是以格式化字元表示以十進位整數常數輸出及  sizeof()  函數來輸出這三個變數所佔用空間大小。
2-2-2  浮點數資料型態 (1) P 2-11 2-2  資料型態簡介 ,[object Object],倍精確浮點數,有效位數 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  資料型態簡介 ,[object Object],[object Object],float  變數名稱 ; 或 float  變數名稱 = 初始值 ; double  變數名稱 ; 或 double  變數名稱 = 初始值 ;
2-2-2  浮點數資料型態 (2) P 2-10 2-2  資料型態簡介 ,[object Object]
2-2-2  浮點數資料型態 (2) P 2-13 2-2  資料型態簡介 ,[object Object],[object Object],在第 07 ~ 08 行中分別宣告了兩個單精度與倍精度浮點數型態的數值,接著透過第 10 ~ 13 行的  printf ()函數,將這兩個浮點數分別以一般浮點數及科學符號的表示方式來顯示內容。
2-2-3  字元資料型態 (1) P 2-14 2-2  資料型態簡介 ,[object Object],[object Object],[object Object],方式 1 : char  變數名稱 1,  變數名稱 2, ……. ,  變數名稱 N;  /* 宣告字元變數 */ 方式 2 : char  變數名稱  = ' 字元 ' ;  /* 宣告並初始化字元變數 */ char  變數名稱 =10 進位 ASCII 碼 ; /* 以 10 進位 ASCII 碼設定字元變數 */ char  變數名稱 = 「 」 8 進位 ASCII 碼 ; /* 八進位 ASCII 碼設定字元變數 */ char  變數名稱 = 「  」 16 進位 ASCII 碼 ; /* 十六進位 ASCII 碼設定字元變數 */
2-2-3  字元資料型態 (2) P 2-14 2-2  資料型態簡介 ,[object Object]
2-2-3  字元資料型態 (2) P 2-15 2-2  資料型態簡介 ,[object Object],[object Object],在第 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 表示一個十六進位數字 hh 八進位表示的 ASCII 碼,每個 o 表示一個八進位數字 oo 顯示反斜線   顯示雙引號  " amp;quot; 顯示單引號  ' apos; 垂直跳格  水平跳格,相當於按一次 Tab 鍵  返回( carriage return )  換行( newline )  跳頁( form feed )  倒退一格( backspace )  使電腦發出嗶一聲( alarm )  說明 跳脫表示字元
2-2-4  特殊字元表示法 (2) P 2-10 2-2  資料型態簡介 ,[object Object]
2-2-4  特殊字元表示法 (2) P 2-16 2-2  資料型態簡介 ,[object Object],[object Object],第 7~8 行中使用「  」來在  printf()  函數中顯示「”」符號,以及使用 16 進位表示法來表示每一個字元的  ASCII  碼,並且藉由「 」符號來轉換成字元及輸出。
2-3-1  運算式型態轉換 (1) P 2-17 2-3  資料型態的轉換方式 ,[object Object],[object Object]
2-3-1  運算式型態轉換 (2) ,[object Object],P 2-17 2-3  資料型態的轉換方式
2-3-1  運算式型態轉換 (2) P 2-18 2-3  資料型態的轉換方式 ,[object Object],[object Object],在第 11 與 12 行中, C  編譯器會先把變數 i 的資料型態各別轉換成  float  與  double  型態,再執行除法運算。 在程式第 16 行中,將 f 與 d 兩個含有小數的值相加,最後存入整數變數  i ,則小數部份的值被忽略掉。 與原先計算時,含有小數值的結果並不相同,使用時應注意到這個特性。
2-3-2  強制型態轉換 (1) P 2-19 2-3  資料型態的轉換方式 ,[object Object],[object Object],[object Object],[object Object],( 資料型態 )  運算式或變數; int i=100, j=3; float Result; Result=i/j;
2-3-2  強制型態轉換 (2) P 2-19 2-3  資料型態的轉換方式 ,[object Object]
2-3-2  強制型態轉換 (2) P 2-20 2-3  資料型態的轉換方式 ,[object Object],[object Object],在第 10 行,由於變數 i 與 j 都是整數變數,算式運算不作型態轉換,只作整數的除法運算,因此浮點數變數 f 的儲存值,只有整數部份。 在第 14 行,使用強制型態轉換,將變數 i 與 j 改以  float  型態作除法運算,運算結果就可包含小數點的數值。
2-4  上機實習課程 (1)  P 2-21 2-4  上機實習課程 補充一下溢位( overflow )的觀念,這會產生個很有趣的現象。 基本上,所謂溢位就是該類型整數的數值超出了可以表示的範圍。 以下 C 程式中宣告了兩個變數  i 、 j ,並將  i 、 j  的值設定為整數與短整數的最大值,分別是  2147483647 、 32767 。  ,[object Object],CH02_10.c
2-4  上機實習課程 (1) P 2-21 ,[object Object],CH02_10.c ,[object Object],2-4  上機實習課程
2-4  上機實習課程 (2) P 2-21 2-4  上機實習課程 以下程式範例是宣告一個倍精確度浮點數,接著分別以不同的格式輸出,其中變數  df  雖然是  double  型態,第 11 行中以「 %13.8f 」格式輸出,表示總位數為 13 位,小數部分為 8 位,所以  df  變數的小數位數得以全部顯示。  ,[object Object],CH02_11.c
2-4  上機實習課程 (2) ,[object Object],P 2-22 2-4  上機實習課程 ,[object Object],CH02_11.c ,[object Object]
2-4  上機實習課程 (3) P 2-21 2-4  上機實習課程 以下程式範例是利用 sizeof() 函數來查詢以下資料型態所佔位元組,如  short int 、 long int 、 char 、 float 、 double 。 ,[object Object],CH02_12.c
2-4  上機實習課程 (3) P 2-23 2-4  上機實習課程 ,[object Object],CH02_12.c ,[object Object]

More Related Content

Viewers also liked

06 函數與巨集
06 函數與巨集06 函數與巨集
06 函數與巨集shademoon
 
09 結構、聯合、列舉與定義型態
09 結構、聯合、列舉與定義型態09 結構、聯合、列舉與定義型態
09 結構、聯合、列舉與定義型態shademoon
 
10 檔案說明與處理
10 檔案說明與處理10 檔案說明與處理
10 檔案說明與處理shademoon
 
計概筆記1
計概筆記1計概筆記1
計概筆記1shademoon
 
C語言 第一章 C語言簡介
C語言 第一章 C語言簡介C語言 第一章 C語言簡介
C語言 第一章 C語言簡介shademoon
 

Viewers also liked (6)

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

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

第2章数据类型、运算符和表达式
第2章数据类型、运算符和表达式第2章数据类型、运算符和表达式
第2章数据类型、运算符和表达式
summerfeng
 
Ch10
Ch10Ch10
Ch10
jashliao
 
Python基本資料運算
Python基本資料運算Python基本資料運算
Python基本資料運算
吳錫修 (ShyiShiou Wu)
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集shademoon
 
第9章 transact sql程序设计
第9章   transact sql程序设计第9章   transact sql程序设计
第9章 transact sql程序设计hanmo1988
 
Ch03
Ch03Ch03
Ch03
jashliao
 
C語言 第三章 03 運算子、運算元與運算式
C語言 第三章 03 運算子、運算元與運算式C語言 第三章 03 運算子、運算元與運算式
C語言 第三章 03 運算子、運算元與運算式shademoon
 
認識 C++11 新標準及使用 AMP 函式庫作平行運算
認識 C++11 新標準及使用 AMP 函式庫作平行運算認識 C++11 新標準及使用 AMP 函式庫作平行運算
認識 C++11 新標準及使用 AMP 函式庫作平行運算
建興 王
 
07 陣列與字串
07 陣列與字串07 陣列與字串
07 陣列與字串shademoon
 
竞赛中C++语言拾遗
竞赛中C++语言拾遗竞赛中C++语言拾遗
竞赛中C++语言拾遗
乐群 陈
 
Ch07
Ch07Ch07
Ch07
jashliao
 
第11章 目标代码生成
第11章 目标代码生成第11章 目标代码生成
第11章 目标代码生成
tjpucompiler
 
第7章 语法制导翻译和中间代码生成
第7章 语法制导翻译和中间代码生成第7章 语法制导翻译和中间代码生成
第7章 语法制导翻译和中间代码生成
tjpucompiler
 
C語言 第五章 程式流程控制
C語言 第五章 程式流程控制C語言 第五章 程式流程控制
C語言 第五章 程式流程控制shademoon
 
基本遗传算法
 基本遗传算法 基本遗传算法
基本遗传算法sixu05202004
 
Python變數與資料運算
Python變數與資料運算Python變數與資料運算
Python變數與資料運算
吳錫修 (ShyiShiou Wu)
 
主备备的两个备机转为双Master出现诡异的slave lag问题
主备备的两个备机转为双Master出现诡异的slave lag问题主备备的两个备机转为双Master出现诡异的slave lag问题
主备备的两个备机转为双Master出现诡异的slave lag问题
haojiewang
 
第6章指针
第6章指针第6章指针
第6章指针
summerfeng
 
1 C入門教學
1  C入門教學1  C入門教學
1 C入門教學Sita Liu
 

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

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

More from shademoon

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

More from shademoon (13)

第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 
C語言 第五章 Ch05 05
C語言 第五章 Ch05 05C語言 第五章 Ch05 05
C語言 第五章 Ch05 05
 
C語言 第五章 Ch05 18
C語言 第五章 Ch05 18C語言 第五章 Ch05 18
C語言 第五章 Ch05 18
 
C語言 第4章 Ch04 02
C語言 第4章 Ch04 02C語言 第4章 Ch04 02
C語言 第4章 Ch04 02
 
C語言 第4章 Ch04 01
C語言 第4章 Ch04 01C語言 第4章 Ch04 01
C語言 第4章 Ch04 01
 
C語言 第4章 基本輸出與輸入功能
C語言 第4章 基本輸出與輸入功能C語言 第4章 基本輸出與輸入功能
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.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. 2-2-4 特殊字元表示法 (1) P 2-16 2-2 資料型態簡介 十六進位表示的 ASCII 碼,每個 h 表示一個十六進位數字 hh 八進位表示的 ASCII 碼,每個 o 表示一個八進位數字 oo 顯示反斜線 顯示雙引號 " amp;quot; 顯示單引號 ' apos; 垂直跳格 水平跳格,相當於按一次 Tab 鍵 返回( carriage return ) 換行( newline ) 跳頁( form feed ) 倒退一格( backspace ) 使電腦發出嗶一聲( alarm ) 說明 跳脫表示字元
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.