|第 2 章 變數與資料型態
|變數特性 資料類型:電腦所要處理的資料類型,例如整數或是浮點數,甚至更複雜的資料型態,例如陣列、集合等等。 2.1 變數 |變數特性 2.1.1 關於 變數 資料類型:電腦所要處理的資料類型,例如整數或是浮點數,甚至更複雜的資料型態,例如陣列、集合等等。 資料大小:可以儲存的資料量,例如單一字元或是多字元所組成的字串、特定範圍的整數或是具小數點的數值等等。 | 變數宣告與設值 >>
|變數宣告與設值 int x = 100 ; 100 定義 int 型態的變數 x 。 2.1 變數 |變數宣告與設值 2.1.1 關於 變數 int x = 100 ; 100 定義 int 型態的變數 x 。 系統根據 int 這個型態配置一塊特定大小的記憶體空間給變數 x ,規範所能儲存的資料型態。 空間大小則根據型態而定。 2 1 << 變數特性 範例:使用變數 >>
|範例:使用變數 100 100 2.1 變數 2.1.1 關於 變數 2 1 << 變數宣告與設值 2.1 變數 |範例:使用變數 2.1.1 關於 變數 100 100 2 1 << 變數宣告與設值 printf() >>
|printf() printf() 提供輸出功能: printf() 支援複雜的輸出設定: 2.1 變數 |printf() 2.1.2 關於 printf() 與資料輸出 printf() 提供輸出功能: printf("Hell,C") ; => Hello,C printf() 支援複雜的輸出設定: printf("馬雅預言 %d 地球新紀元", 2012) ; => 馬雅預言 2012 地球新紀元 參數可以是一個變數,最後所插入的將會是變數的值。 2012 5 4 3 2 1 << 範例:使用變數 printf() >>
|printf() printf() 允許插入一個以上的參數值,只要以「,」接續即可。 每個參數在字串中須有對應的 %d 符號: 2.1 變數 |printf() 2.1.2 關於 printf() 與資料輸出 printf() 允許插入一個以上的參數值,只要以「,」接續即可。 每個參數在字串中須有對應的 %d 符號: printf("%d 比 %d 大", 2000,1000) ; 2000 比 1000 大。 2000 1000 3 2 1 << printf() printf() >>
|printf() 宣告與設值分開設定 每個參數在字串中須有對應的 %d 符號: 2000 比 1000 大。 2.1 變數 |printf() 2.1.2 變數宣告與資料存取 宣告與設值分開設定 每個參數在字串中須有對應的 %d 符號: printf("%d 比 %d 大", 2000,1000) ; 2000 比 1000 大。 3 2 1 << printf() 範例:輸出訊息字串 >>
|範例:輸出訊息字串 200 是 100 的兩倍 200 100 2.1 變數 2.1.2 變數宣告與資料存取 3 2 1 2.1 變數 |範例:輸出訊息字串 2.1.2 變數宣告與資料存取 100 200 200 是 100 的兩倍 3 2 1 << printf() 宣告與設值 >>
|宣告與設值 int inumber ; inumber =1000 ; 1000 1000 inumber inumber 2.1 變數 2.1 變數 2.1 變數 |宣告與設值 2.1.3 變數宣告與資料存取 int inumber ; inumber =1000 ; inumber 1000 1000 inumber 2 1 << 範例:輸出訊息字串 範例:變數宣告與設值 >>
|範例:變數宣告與設值 x=100,y=300 100 300 100 300 2.1 變數 2.1 變數 2.1.3 變數宣告與資料存取 2.1 變數 2.1 變數 |範例:變數宣告與設值 2.1.3 變數宣告與資料存取 100 300 100 x=100,y=300 300 4 3 2 1 << 宣告與設值 一次宣告多個變數 >>
|一次宣告多個變數 一次宣告三個 int 型態的變數 int x,y,z ; 2.1 變數 2.1 變數 2.1.4 同時宣告多個變數 2.1 變數 2.1 變數 |一次宣告多個變數 2.1.4 同時宣告多個變數 一次宣告三個 int 型態的變數 int x,y,z ; << 範例:變數宣告與設值 範例:同時宣告變數與設值 >>
|範例:同時宣告變數與設值 int x=100,y,z ; x=100,y=200,z=300 100 200 300 2.1 變數 2.1 變數 2.1 變數 |範例:同時宣告變數與設值 2.1.4 同時宣告多個變數 int x=100,y,z ; 100 200 300 7 6 5 x=100,y=200,z=300 4 3 2 1 << 一次宣告多個變數 修改變數值 >>
|修改變數值 2000 1000 inumber int inumber ; inumber =1000 ; inumber =2000 ; 2.1 變數 |修改變數值 2.1.5 修改變數值 int inumber ; inumber =1000 ; inumber =2000 ; 1000 2000 2000 1000 inumber 2 1 << 範例:同時宣告變數與設值 範例:修改變數的設值 >>
|範例:修改變數的設值 x=123,y=456 456 123 2.1 變數 2.1.5 修改變數值 3 2 1 2.1 變數 |範例:修改變數的設值 2.1.5 修改變數值 x=123,y=456 456 123 3 2 1 << 修改變數值 範例:將變數指派給變數 >>
|範例:將變數指派給變數 x=123,y=123 123 123 123 2.1 變數 2.1.5 修改變數值 2 1 2.1 變數 |範例:將變數指派給變數 2.1.5 修改變數值 123 x=123,y=123 123 123 2 1 << 範例:修改變數的設值 常數宣告 >>
|常數宣告 常數是一種固定數值的變數。 圓周率 PI 即是一個非常典型的常數。 常數完成宣告設定之後就無法修改,適合需要保持常值情形。 2.2 常數 |常數宣告 常數是一種固定數值的變數。 圓周率 PI 即是一個非常典型的常數。 常數完成宣告設定之後就無法修改,適合需要保持常值情形。 常數宣告: const int x = 100 ; << 範例:將變數指派給變數 範例:常數 >>
2.2 常數 |範例:常數 常數 x = 100 2 1 << 常數宣告 修改常數的錯誤 >>
warning: assignment of read-only variable `x' 2.2 常數 |修改常數的錯誤 常值 const int x = 100 ; x = 200 修改常數值 warning: assignment of read-only variable `x' 3 2 1 << 範例:常數 範例:#define 示範 >>
|範例:#define 示範 常數 x=100,y=200 100 200 2.2 常數 4 3 2 1 << 修改常數的錯誤 2.2 常數 |範例:#define 示範 100 200 4 常數 x=100,y=200 3 2 1 << 修改常數的錯誤 資料型態 >>
|資料型態 整數:定義特定數值範圍、不帶小數點的整數值。 浮點數:代表包含小數點位數的數值資料,資料大小範圍相較於整數要來得大。 2.3 資料型態 |資料型態 2.3.1 關於資料型態 整數:定義特定數值範圍、不帶小數點的整數值。 浮點數:代表包含小數點位數的數值資料,資料大小範圍相較於整數要來得大。 字元:表示一個單一位元組的字元。 << 範例:#define 示範 無號整數 >>
2.3 資料型態 |無號整數 2.3.1 關於資料型態 << 資料型態 變數的宣告與設值 >>
|整數的宣告與設值 宣告 short 宣告 long 以完整名稱宣告 short s = 600 ; long x = 128L ; 2.3 資料型態 |整數的宣告與設值 2.3.2 使用整數 宣告 short short s = 600 ; 系統會配置 2 個位元組大小的空間 只能儲存 -32768 ~ 32767 之間的數值 宣告 long long x = 128L ; long x = 128l ; L 與 l 均表示 long 以完整名稱宣告 short int s = 123 ; long int x = 456l ; << 無號整數 宣告無號整數 >>
|宣告無號整數 以 unsigned 宣告無號整數 unsigned int x = 100 ; 2.3 資料型態 2.3.3 無號整數 << 整數的宣告與設值 範例:型態轉換錯誤 >>
|範例:型態轉換錯誤 a:-32768 b:32768 x:-1 y:65535 超出範圍值 超出範圍值 2.3 資料型態 2.3.3 無號整數 超出範圍值 超出範圍值 a:-32768 b:32768 x:-1 y:65535 3 2 1 << 宣告無號整數 設值溢位 >>
|設值溢位 a:-32768 a = 32768 b = 32768 b:32768 x = 65535 x:-1 y = 65535 2.3 資料型態 |設值溢位 2.3.3 無號整數 a = 32768 b = 32768 x = 65535 y = 65535 a:-32768 b:32768 x:-1 y:65535 32768 65535 32768 4 3 2 1 << 範例:型態轉換錯誤 溢位 >>
|溢位 short s = 32768 ; 32768 2.3 資料型態 2.3.4 不當設值溢位 << 設值溢位 << 設值溢位 範例:溢位示範 >>
|範例:溢位示範 short 變數 s=-32768 超出範圍值 2.3 資料型態 2.3.4 不當設值溢位 2 1 << 溢位 << 溢位 浮點數宣告與設值 >>
|浮點數宣告與設值 浮點數的資料型態 以科學記號表示 double d = 100.123 ; float f =100.456f ; 2.3 資料型態 |浮點數宣告與設值 2.3.5 浮點數型態 浮點數的資料型態 double d = 100.123 ; float f =100.456f ; 所有包含小數點的浮點數預設為double 型態 字母 f (也可以指定為 F )表示以 float 型態處理數值 未以 f 標示的數字指定給 float 變數可以通過編譯,但是會有型態轉換問題 以科學記號表示 double d1 = 1.02e3 double d2 = 1.02E3 E 或是 e 表示 10 的次方 輸出浮點數型態的數值時,必須在 printf() 中指定 %f 的格式化符號 格式化符號 %e 則表示以指數型態輸出。 << 範例:溢位示範 範例:指數型態表示 >>
|範例:指數型態表示 float 變數 s=123456.000000 double 變數 s=4567890.000000 2.3 資料型態 |範例:指數型態表示 2.3.5 浮點數型態 float 變數 s=123456.000000 double 變數 s=4567890.000000 float 變數 s=1.234568e+008 double 變數 s=4.567890e+006 2 1 << 浮點數宣告與設值 範例:浮點數型態 >>
|範例:浮點數型態 float 變數 f=123.456779 double 變數 d=123.456780 2.3 資料型態 2.3.5 浮點數型態 float 變數 f=123.456779 double 變數 d=123.456780 << 範例:指數型態表示 字元宣告與表示 >>
|字元宣告與表示 char 用來表示單一字元。 每一個字元會佔據單一位元組的空間。 設定一個字元的時候必須以單引號做表示。 2.3 資料型態 |字元宣告與表示 2.3.6 字元 char 用來表示單一字元。 每一個字元會佔據單一位元組的空間。 設定一個字元的時候必須以單引號做表示。 char c1='Z' ; char c2='Y' ; << 範例:浮點數型態 範例:字元資料示範 >>
|範例:字元資料示範 char 變數 c1=Z char 變數 c2=Y 2.3 資料型態 2.3.6 字元 << 字元宣告與表示 字元與編碼 >>
|字元與編碼 字元被編碼成為對應的整數作表示 不同的語言文字有數種不同的編碼系統 最廣為人知的編碼系統為 ASCII 2.3 資料型態 |字元與編碼 2.3.6 字元 字元被編碼成為對應的整數作表示 不同的語言文字有數種不同的編碼系統 最廣為人知的編碼系統為 ASCII char x = 65 ; -> A char y = 90 ; -> Z << 範例:字元資料示範 範例:字元資料示範 >>
|範例:字元資料示範 char 變數 c1=A char 變數 c2=Z 2.3 資料型態 2.3.6 字元 << 字元與編碼 << 字元與編碼 範例:以整數格式輸出 >>
|範例:以整數格式輸出 A 的字元編碼 =65 a 的字元編碼 =97 2.3 資料型態 2.3.6 字元 << 範例:字元資料示範 範例:單引號標示數字 >>
|範例:單引號標示數字 c1 變數 = 9 c2 變數 = 2.3 資料型態 2.3.6 字元 << 範例:以整數格式輸出 << 範例:以整數格式輸出 跳脫字元 >>
2.3 資料型態 |跳脫字元 2.3.7 跳脫字元 << 範例:單引號標示數字 範例:輸出跳脫字元 >>
|範例:輸出跳脫字元 c1 = [ ] c2 變數 = [ ] 換行 2.3 資料型態 2.3.7 跳脫字元 << 跳脫字元 << 跳脫字元 範例:字串與跳脫字元 >>
|範例:字串與跳脫字元 康廷數位 www.kangting.tw 康廷數位 www.kangting.tw 2.3 資料型態 2.3.7 跳脫字元 康廷數位 www.kangting.tw 康廷數位 www.kangting.tw 2 1 << 範例:輸出跳脫字元 單引號表示 >>
|單引號表示 char c = '\'' ; 2.3 資料型態 2.3.7 跳脫字元 << 範例:字串與跳脫字元 << 範例:字串與跳脫字元 範例:跳脫字元 >>
|範例:跳脫字元 c1 = ['] c2 = ["] ['"] 2.3 資料型態 2.3.7 跳脫字元 3 2 1 << 單引號表示 布林型態 >>
|布林型態 「布林」資料型態用來表示 true 與 false 等兩種可能的值。 true 表示真的狀態, flase 則是偽的狀態。 2.3 資料型態 |布林型態 2.3.8 關於布林型態 「布林」資料型態用來表示 true 與 false 等兩種可能的值。 true 表示真的狀態, flase 則是偽的狀態。 C 語言以 0 與非 0 的整數值表示布林值。 當一個運算式最後得到非 0 的結果,被視為 true ,反之若是結果為 0 ,則表示為 false 。 << 範例:跳脫字元 範例 布林型態示範 >>
|範例:布林型態示範 300<200:0 300>200:1 1 1 2.3 資料型態 2.3.8 關於布林型態 4 3 2 1 1 1 300<200:0 300>200:1 4 3 2 1 << 布林型態 type 與型態轉換 >>
|type 與型態轉換 型態轉換,將某個型態的變數,轉換成另外一種型態 (type)var ; type 為所要轉換的目標型態 2.9 型態轉換 |type 與型態轉換 型態轉換,將某個型態的變數,轉換成另外一種型態 (type)var ; type 為所要轉換的目標型態 var 是所要轉換的變數 將變數 var 從它原來的型態轉換成 type 型態 << 範例:布林型態示範 範例:型態轉換 >>
|範例:型態轉換 int float float int x:100 y:100.001 a:100.000 b:100 2.9 型態轉換 3 2 1 << type 與型態轉換 範例:型態轉換錯誤 >>
|範例:型態轉換錯誤 x:32768 s:-32768 32768 32768 > 32767(short) 10.4 雙重指標 4 10.4 雙重指標 |範例:型態轉換錯誤 32768 32768 > 32767(short) x:32768 s:-32768 4 3 2 1 << 範例:型態轉換 |