第 3 章 資料型態 (Data Type)

20
1 ( 社社 )

description

第 3 章 資料型態 (Data Type). ( 社團 ). 電腦主要是用來處理資料的 !. 在設計程式時,依程式執行時該資料是否允許做算術運算分成 數值資料 和 字串資料 。 若依程式執行時資料是否具有變動性,可將資料分成 常數 (Constant) 和 變數 (Variable) 。 常數 – 整數常數、浮點常數、字元常數、字串常數。 數值變數 整數: short, int, long 變數 非整數: float, double ( 含小數及實數) 字元變數: char. 資料型態. 名稱. 用途. 儲存空間. 儲存值範圍. - PowerPoint PPT Presentation

Transcript of 第 3 章 資料型態 (Data Type)

Page 1: 第  3 章   資料型態 (Data Type)

1

( 社團 )

Page 2: 第  3 章   資料型態 (Data Type)

電腦主要是用來處理資料的 !在設計程式時,依程式執行時該資料是否允許做算術

運算分成數值資料和字串資料。若依程式執行時資料是否具有變動性,可將資料分成

常數 (Constant) 和變數 (Variable) 。

常數 – 整數常數、浮點常數、字元常數、字串常數。

數值變數 整數: short, int, long 變數 非整數: float, double( 含小數及

實數)

字元變數: char 2

Page 3: 第  3 章   資料型態 (Data Type)

資料型態 - C 語言的基本資料型

態 下表中整理出在 C 語言中,各種基本料型態的相

關資料      

-32768 至 32767

在 32 位元系範圍與 long

浮點數 較小的實數 4 bytes 指數最大 ±1038

最小為 ±10-376

長倍精度浮點數

較大的實數

char

資料型態 名稱 用途 儲存空間 儲存值範圍 有效精度位數

short 短整數 儲存較小的整數 2 bytes

在 16 位元系範圍與 short

統下儲存空間、相同

統下儲存空間、相同

long 長整數 儲存較大的整數 4 bytes -21474836648 至21474836647

float

double 倍精度浮點數

實數 8 bytes 指數最大 ±10308

最小為 ±10-30715

long double

精確度大於 或等於 double

字元 字元 1 bytes -128 至 127

int 整數 儲存整數整 數

字元

•整數•浮點數•字元

3

Page 4: 第  3 章   資料型態 (Data Type)

常數 -整數常數:只有阿拉伯數字與正負號的數字 浮點數常數:帶有小數點或指數的數字 字元常數:以單引號 ’括住的字元 字串常數:以雙引號 ”括住的文字

4

Page 5: 第  3 章   資料型態 (Data Type)

什麼是變數 (Variable) !?

如何宣告變數 變數宣告的語法如下:

資料型態 變數名稱 ; 下面的敘述將把變數 i 宣告為 int (整數)型態:

int i ; 一次宣告好幾個資料型態相同的變數,只要在宣告時,用『 , 』逗號隔開每個變數即可。

int i, j, k;在宣告變數的同時,亦可同時指定它的初值,

int i=10, j=20, k=30; 5

程式內用於儲存可任意變動的資料 !

Page 6: 第  3 章   資料型態 (Data Type)

在那裡宣告變數呢?在程式中大括號『 {…} 』所定義的程式範圍,將稱為一個程式區塊( block )。變數的宣告,應該要放置在大括號『 {…} 』所定義範圍的開頭位置,其宣告位置如下:

{資料型態 變數名稱 ; // 變數宣告的位置緊接著左括號 {

// … 程式內容…

}

6

Page 7: 第  3 章   資料型態 (Data Type)

變數宣告 – 語法

#include <stdio.h>int main( ){

int num1=123;double num2=123.456;char ch1=‘A’;int num3;

system(“PAUSE”);return 0;

}7

變數的宣告和設定初始值

Page 8: 第  3 章   資料型態 (Data Type)

資料型態 - 字元( char )

以下的敘述,將示範字元的宣告。

char ch1; // 宣告字元變數 ch1

char ch2=‘A’; // 宣告字元變數 ch2 ,並同時指定 ch2 的初值為字元 A

8

Page 9: 第  3 章   資料型態 (Data Type)

資料型態 - 字元( char )跳脫字元的應用

下表將列出常用跳脫字元與對應之 ASCII 碼。 跳脫字元 作用 ASCII 碼

(10)(8)(16) 進制ASCII表示法

ASCII圖示

\0 字串結束字元 (Null Character)

0 0 0x00 NUL NUL

\a 警告音 (Alert) 7 007 0x07 BEL BEL

\b 倒退一格 (Backspace) 8 010 0x08 BS BS

\t 水平跳格(Horizontal Tab)

9 011 0x09 HT HT

\n 換行 (New Line) 10 012 0x0a NL(LF) NL(LF)

\r 歸位 (Carriage Return) 13 015 0x0d CR CR

\” 雙引號 (Double Quote) 34 042 0x22 “ “\’ 單引號 (Single Quote) 39 047 0x27 ‘ ‘\\ 反斜線 (Backslash) 92 0134 0x5c \ \

\ooo 8 進制值之 ASCII 值(ooo 為 8 進制之數字 )

ooo

\xhh 16 進制之 ASCII 值(hh 為 16 進制之數字 )

hh 9

Page 10: 第  3 章   資料型態 (Data Type)

資料型態 - 字串欲儲存一長串文字時,則可以宣告字串變數來儲存。

字串變數的宣告與字元變數的宣告很接近,以下敘述將宣告一個可以存放 7 個字元的字串變數 s :

char s[7]; // 宣告字串變數 s

在宣告變數的同時,也可以同時完成初值的指定,語法如下:

char s[7]="Hello! "; // 宣告字串變數 s 並設定初值為 Hello!

10

Page 11: 第  3 章   資料型態 (Data Type)

資料型態 - 字串指定過初值後的字串變數 s 的內容如下圖所示:

以一個簡單的例子來說明,分別以單引號與雙引號括注的字元 A ,指派做為給字串變數的初值。

  存放位置

存放字元

s[0]

s[1]

s[2]

s[3]

s[4]

s[5]

s[6]

‘H’ ‘e’ ‘l’ ‘l’ ‘o’ ‘!’ ‘\0’

 

字元’ A’ A

字串” A” A \0

 

11

Page 12: 第  3 章   資料型態 (Data Type)

資料型態 - 字串對於在宣告時,便指定初值的字串變數,中括號

『 [ ] 』內的數字可以不寫,程式會自動計算字串的長度,並自動指定正確的值。

char s[]="Hello! "; // 相當於 s[7]

12

Page 13: 第  3 章   資料型態 (Data Type)

資料型態 - 字串當你使用超出所宣告的大小時,程式並不會主動

告訴你這個錯誤的,以下敘述就有這樣的錯誤。 錯誤的程式 1char s[4]= ”Hello” ; // 初值超出範圍 錯誤的程式 2char s[4]; s[4]=’\0’; // 使用字串之字元超出範圍

13

Page 14: 第  3 章   資料型態 (Data Type)

變數命名的限制在命名變數時,要遵守以下所列的條件:

變數的開頭字元應該為英文字母(大小寫均可)或者是底線字元『 _』。

變數的其它字元應該為英文字母(大小寫均可)、底線字元『 _』或者是數字。

不可與保留字相同。 變數命名時,英文字母的大寫與小寫視為不同。

14

Page 15: 第  3 章   資料型態 (Data Type)

變數命名的限制以下為一些合法命名的變數名稱:

i_bestHello_Every_OneGoodMorning

以下為一些不合法命名的變數名稱: 7_11 // 不能以數字開頭 /U-Boat // 不能有 『 - 』Are U Hungry // 不能有空白Good? // 不能有問號

15

Page 16: 第  3 章   資料型態 (Data Type)

變數命名的限制下表為 C 語言的保留字。

 

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  

16

BACK

Page 17: 第  3 章   資料型態 (Data Type)

給變數一個好名字 - 匈牙利命名法

下表將整理代表各資料型態用於加在變數名稱前的字首:

  

資料型態 名 稱 代表字首short 短整數 sh

int 整數 n

long 長整數 l

float 浮點數 f

double 倍精度浮點數 d

long double

長倍精度浮點數 ld

char 字元 c

string 字串 s

pointer 指標變數 p

BOOL 布林數 b

17

Page 18: 第  3 章   資料型態 (Data Type)

變數的有效範圍區域變數

在 C 語言中,以『 { } 』大括弧符號所圍住的程式敘述,稱為程式區塊( block )。變數的宣告應當在『 { } 』大括弧符號內的起始位置,也就是程式區塊的開頭位置,當變數在此宣告後,將只能在其所屬的程式區塊內使用,此類變數稱之為區域變數( local variable ) 。

18

Page 19: 第  3 章   資料型態 (Data Type)

變數的有效範圍 以下程式敘述的整數變數 j ,它的有效範圍是從

宣告變數開時,一直到『 } 』右大括號為止。

{ // 程式區塊 int j=2; // j 的有效範圍開始

……

} // j的有效範圍結束

19

Page 20: 第  3 章   資料型態 (Data Type)

變數的有效範圍 廣域變數廣域變數的宣告並不在『 { } 』大括弧符號內,而是在程式區塊的範圍之外宣告。廣域變數也有人稱為全域變數或外部變數 。

20