2.2 浮點型(float)
一、浮點數說明
Turbo C中有以下兩種類型的浮點數:
float 單浮點數。字長為4 個字節(jié)共32 位二進制數, 數的范圍是3.4x10-38E~3.4x10+38E。
double 雙浮點數。字長為 8個字節(jié)共 64 位二進制數, 數的范圍是1.7x10-308E~1.7x10+308E。
說明:
浮點數均為有符號浮點數, 沒有無符號浮點數。
二、浮點型變量定義
可以用下列語句定義浮點型變量:
float a, f; /*a, f被定義為單浮點型變量*/
double b; /*b被定義為雙浮點型變量*/
三、浮點常數表示
例如: +29.56, -56.33, -6.8e-18, 6.365
說明:
1. 浮點常數只有一種進制(十進制)。
2. 所有浮點常數都被默認為double。
3. 絕對值小于1的浮點數, 其小數點前面的零可以省略。如:0.22可寫為.22, -0.0015E-3可寫為-.0015E-3。
4. Turbo C默認格式輸出浮點數時, 最多只保留小數點后六位。
2.3 字符型(char)
加上不同的修飾符, 可以定義有符號和無符號兩種類型的字符型變量, 例如:
char a: /*a被定義為有符號字符變量*/
unsigned char l; /*l被定義為無符號字符變量*/
字符在計算機中以其ASCII碼方式表示, 其長度為1個字節(jié), 有符號字符型數取值范圍為-128~127, 無符號字符型數到值范圍是0~255。因此在Turbo C語言中, 字符型數據在操作時將按整型數處理, 如果某個變量定義成char, 則表明該變量是有符號的, 即它將轉換成有符號的整型數。
Turbo C中規(guī)定對ASCII碼值大于0x80的字符將被認為是負數。例如ASCII 值為0x8c的字符, 定義成char時, 被轉換成十六進制的整數0xff8c 。 這是因當ASCII碼值大于0x80時, 該字節(jié)的最高位為1, 計算機會認為該數為負數, 對于0x8c表示的數實際上是-74(8c的各位取反再加1), 而-74 轉換成兩字節(jié)整型數并在計算機中表示時就是0xff8c( 對0074 各位取反再加1) 。 因此只有定義為unsigned char 0x8c轉換成整型數時才是8c。這一點在處理大于0x80的ASCII碼字符時(例如漢字碼)要特別注意。一般漢字均定義為unsigned char(在以后的程序中會經常碰到)。
另外, 也可以定義一個字符型數組(關于數組后面再作詳細介紹), 此時該數組表示一個字符串。
例如:
char str[10];
計算機在編譯時, 將留出連續(xù)10個字符的空間, 即str[0]到str[9]共10個變量, 但只有前9個供用戶使用。第10個str[9]用來存放字符串終止符NULL即"\0", 但終止符是編編譯程序自動加上的, 這一點應特別注意。
二、字符常數表示
能用符號表示的字符可直接用單引號括起來表示, 如'a', '9', 'Z', 也可用該字符的ASCII碼值表示, 例如十進制數85表示大寫字母'U', 十六進制數0x5d表示']', 八進制數0102表示大寫字母'B'。
一些不能用符號表示的控制符, 只能用ASCII碼值來表示, 如十進制數10 表示換行, 下六進制數0x0d表示回車, 八進制數033表示Esc。Turbo C2.0中也有另外一種表示表示方法, 如'\033'表示Esc, 這里'\ 0' 符號后面的數字表示十六進制的ASCII值當然這種表示方法也適用于可睦接用符號表示的字符。
另外, Turbo C2.0中有些常用的字符用以下特殊規(guī)定來表示:
規(guī)定符 等價于 含義
'\f' '\X0C' 換頁
'\r' '\X0D' 回車
'\t' '\X09' 制表鍵
'\n' '\X0A' 換行
'\\' '\X5C' \符
'\'' '\X27' '符
'\"' '\X22' "符
對于字符串常量, 一般用雙引號括起來表示, 如"Hello Turbo C2.0"。
2.4 指針型(*)
指針是一種特殊的數據類型, 在其它語言中一般沒有。指針是指向變量的地址, 實質上指針就是存貯單元的地址。 根據所指的變量類型不同, 可以是整型指針(int *)、浮點型指針(float *)、字符型指針(char *)、結構指針(struct *)和聯合指針(union *)(結構指針和聯合指針將在第4節(jié)中介紹)。
2.5 無值型(void)
無值型字節(jié)長度為0, 主要有兩個用途: 一是明確地表示一個函數不返回任何值; 一是產生一個同一類型指針(可根據需要動態(tài)分配給其內存)。
例如:
void *buffer; /*buffer被定義為無值型指針*/
2 關鍵字和標識符
3.1 關鍵字
所謂關鍵字就是已被Turbo C2.0本身使用, 不能作其它用途使用的字。例如關鍵字不能用作變量名、函數名等。
Turbo C2.0有以下關鍵字:
Turbo C2.0擴展的共11個
asm _cs _ds _es _ss cdecl
far near huge interrupt pascal
由ANSI標準定義的共32個
auto double int struct break else
long switch case enum register typedef
char extern return union const float
short unsigned continue for signed void
default goto sizeof volatile do if
while static
3.2 標識符
所謂標識符是指常量、變量、語句標號以及用戶自定義函數的名稱。 Turbo C 2.0標識符的定義十分靈活。作為標識符必須滿足以下規(guī)則:
1. 所有標識符必須由一個字母(a~z, A~Z)或下劃線(_)開頭;
2. 標識符的其它部分可以用字母、下劃線或數字(0~9)組成;
3. 大小寫字母表示不同意義, 即代表不同的標識符;
4. 標識符只有前32個字符有效;
5. 標識符不能使用Turbo C2.0的關鍵字。
下面舉出幾個正確和不正確的標識符:
正確 不正確
smart 5smart
_decision bomb?
key_board key.board
FLOAT float
3. 變量
4.1 變量說明
Turbo C2.0規(guī)定所有變量在使用前都必須中以說明。一條變量說明語句由數據類型和其后的一個或多個變量名組成。變量說明的形式如下:
類型 <變量表>;
這里類型是指Turbo C2.0的有效數據類型。變量表是一個或多個標識符名, 每個標識符之間用","分隔。
例如: int i, j, k; unsigned char c, str[5], *p;
4.2 變量種類
變量可以在程序中三個地方說明: 函數內部、函數的參數定義中或所有的函數外部。根據所定義位置的不同, 變量可分為局部變量、形式參數和全程變量。
一、局部變量
局部變量是指在函數內部說明的變量(有時也稱為自動變量)。用關鍵字auto進行說明, 當auto省略時, 所有的非全程變量都被認為是局部變量, 所以auto實際上從來不用。
局部變量在函數調用時自動產生, 但不會自動初始化, 隨函數調用的結束, 這個變量也就自動消失了, 下次調用此函數時再自動產生, 還要再賦值, 退出時又自動消失。
二、形式參數
形式參數是指在函數名后面的小括號里定義的變量, 用于接受來自調用函數的參數。形式參數在函數內部可以象其它局部變量那樣來作用。
例如:
puthz(int x, int y, int color, char *p)
{
int i, j, k; /*定義局部變量*/
<程序體>
}
其中x, y, color, *p為函數的形式參數, 不需要再進行說明就可在該函數內直使用。
相關推薦:計算機等考二級C語言備考:C語言/C++編譯過程北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |