Transcript Document

(社團)
1
 電腦主要是用來處理資料的!
 在設計程式時,依程式執行時該資料是否允許做算術
運算分成數值資料和字串資料。
 若依程式執行時資料是否具有變動性,可將資料分成
常數(Constant)和變數(Variable)。
 常數 – 整數常數、浮點常數、字元常數、字串常數。
數值變數
 變數
整數:short, int, long
非整數:float, double(含小數及實數)
字元變數:char
2
• 整數
• 浮點數
• 字元
資料型態 - C語言的基本資料型態
 下表中整理出在C語言中,各種基本料型態的相關
資料
資料型態
名稱
用途
儲存空間
儲存值範圍
short
短整數
2 bytes
-32768至32767
int
整數
儲存較小的整
數
儲存整數
在16位元系
範圍與 short
統下儲存空間、
相同
在32位元系
範圍與 long
統下儲存空間、
相同
整
數
浮
點
數
字
元
有效精度位數
long
長整數
儲存較大的整
數
4 bytes
-21474836648至
21474836647
float
浮點數
較小的實數
4 bytes
指數最大±1038
最小為±10-37
6
double
倍精度
浮點數
實數
8 bytes
指數最大±10308
最小為±10-307
15
long
double
長倍精度
浮點數
較大的實數
精確度大於
或等於double
char
字元
字元
1 bytes
-128至127
3
常數 整數常數:只有阿拉伯數字與正負號的數字
 浮點數常數:帶有小數點或指數的數字
 字元常數:以單引號 ’括住的字元
 字串常數:以雙引號 ”括住的文字
4
什麼是變數(Variable)!?
 如何宣告變數
程式內用於儲存可任意變動的資料!
變數宣告的語法如下:
資料型態 變數名稱;
下面的敘述將把變數i宣告為int(整數)型態:
int i ;
一次宣告好幾個資料型態相同的變數,只要在宣
告時,用『,』逗號隔開每個變數即可。
int i, j, k;
在宣告變數的同時,亦可同時指定它的初值,
int i=10, j=20, k=30;
5
在那裡宣告變數呢?
在程式中大括號『{…}』所定義的程式範圍,將稱為一個
程式區塊(block)。變數的宣告,應該要放置在大括號
『{…}』所定義範圍的開頭位置,其宣告位置如下:
{
資料型態 變數名稱 ;
// 變數宣告的位置緊接著左括號 {
// …程式內容…
}
6
 變數宣告 – 語法
#include <stdio.h>
int main( )
{
int num1=123;
double num2=123.456;
char ch1=‘A’;
int num3;
變數的宣告和設定初始值
system(“PAUSE”);
return 0;
}
7
資料型態 - 字元(char)
 以下的敘述,將示範字元的宣告。
char ch1;
char ch2=‘A’;
// 宣告字元變數ch1
// 宣告字元變數ch2,並同時指定ch2的初值為字元A
8
資料型態 - 字元(char)
 跳脫字元的應用
下表將列出常用跳脫字元與對應之ASCII碼。
ASCII
表示法
ASCII
圖示
0x00
NUL
NUL
007
0x07
BEL
BEL
8
010
0x08
BS
BS
水平跳格
(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進制之數字)
\xhh
16進制之ASCII值
(hh為16進制之數字)
跳脫字元
作用
ASCII碼
(10)(8)(16)進制
\0
0
0
\a
字串結束字元(Null
Character)
警告音(Alert)
7
\b
倒退一格(Backspace)
\t
ooo
hh
9
資料型態 - 字串
 欲儲存一長串文字時,則可以宣告字串變數來儲存。
字串變數的宣告與字元變數的宣告很接近,以下敘
述將宣告一個可以存放7個字元的字串變數s:
char s[7];
// 宣告字串變數s
在宣告變數的同時,也可以同時完成初值的指定,
語法如下:
char s[7]="Hello! "; // 宣告字串變數s 並設定初值為Hello!
10
資料型態 - 字串
 指定過初值後的字串變數s的內容如下圖所示:
存放位置 s[0]
s[1]
s[2]
s[3]
s[4]
s[5]
s[6]
存放字元 ‘H’
‘e’
‘l’
‘l’
‘o’
‘!’
‘\0’
 以一個簡單的例子來說明,分別以單引號與雙引
號括注的字元A,指派做為給字串變數的初值。
字元’A’ A
字串”A” A
\0
11
資料型態 - 字串
 對於在宣告時,便指定初值的字串變數,中括號
『[ ]』內的數字可以不寫,程式會自動計算字串
的長度,並自動指定正確的值。
char s[]="Hello! "; // 相當於s[7]
12
資料型態 - 字串
 當你使用超出所宣告的大小時,程式並不會主動
告訴你這個錯誤的,以下敘述就有這樣的錯誤。
錯誤的程式1
char s[4]= ”Hello” ; // 初值超出範圍

錯誤的程式2
char s[4];
s[4]=’\0’; // 使用字串之字元超出範圍

13
變數命名的限制
 在命名變數時,要遵守以下所列的條件:
 變數的開頭字元應該為英文字母(大小寫均可)或者是
底線字元『_』。
 變數的其它字元應該為英文字母(大小寫均可)、底線
字元『_』或者是數字。
 不可與保留字相同。
 變數命名時,英文字母的大寫與小寫視為不同。
14
變數命名的限制
 以下為一些合法命名的變數名稱:
i
_best
Hello_Every_One
GoodMorning
 以下為一些不合法命名的變數名稱:
7_11
// 不能以數字開頭 /
U-Boat
// 不能有 『-』
Are U Hungry // 不能有空白
Good?
// 不能有問號
15
變數命名的限制
 下表為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
B
A
C
K
16
給變數一個好名字 - 匈牙利命名法
 下表將整理代表各資料型態用於加在變數名稱前
的字首:
資料型態
名 稱
代表字首
short
短整數
sh
int
整數
n
long
長整數
l
float
浮點數
f
double
倍精度浮點數
d
long double
長倍精度浮點數
ld
char
字元
c
string
字串
s
pointer
指標變數
p
BOOL
布林數
b
17
變數的有效範圍
 區域變數
在C語言中,以『{ }』大括弧符號所圍住的程式敘
述,稱為程式區塊(block)。變數的宣告應當在
『{ }』大括弧符號內的起始位置,也就是程式區
塊的開頭位置,當變數在此宣告後,將只能在其
所屬的程式區塊內使用,此類變數稱之為區域變
數(local variable)。
18
變數的有效範圍
 以下程式敘述的整數變數j,它的有效範圍是從宣
告變數開時,一直到『}』右大括號為止。
{
// 程式區塊
int j=2; // j的有效範圍開始
……
} // j的有效範圍結束
19
變數的有效範圍
 廣域變數
廣域變數的宣告並不在『{ }』大括弧符號內,而
是在程式區塊的範圍之外宣告。廣域變數也有人
稱為全域變數或外部變數 。
20