4. 變量
4.1 變量說(shuō)明 Turbo C2.0規(guī)定所有變量在使用前都必須中以說(shuō)明。一條變量說(shuō)明語(yǔ)句由數(shù)據(jù)類型和其后的一個(gè)或多個(gè)變量名組成。變量說(shuō)明 的形式如下: 類型 <變量表>; 這里類型是指Turbo C2.0的有效數(shù)據(jù)類型。變量表是一個(gè)或多個(gè)標(biāo)識(shí)符名,每個(gè)標(biāo)識(shí)符之間用 "," 分隔。 例如: int i, j, k; unsigned char c, str[5], *p;
4.2 變量種類 變量可以在程序中三個(gè)地方說(shuō)明: 函數(shù)內(nèi)部、函數(shù)的參數(shù)定義中或所有的函數(shù)外部。根據(jù)所定義位置的不同, 變量可分為局部 變量、形式參數(shù)和全程變量。 一、局部變量 局部變量是指在函數(shù)內(nèi)部說(shuō)明的變量(有時(shí)也稱為自動(dòng)變量)。用關(guān)鍵字auto進(jìn)行說(shuō)明, 當(dāng)auto省略時(shí), 所有的非全程變量都被 認(rèn)為是局部變量, 所以auto實(shí)際上從來(lái)不用。 局部變量在函數(shù)調(diào)用時(shí)自動(dòng)產(chǎn)生,但不會(huì)自動(dòng)初始化,隨函數(shù)調(diào)用的結(jié)束,這個(gè)變量也就自動(dòng)消失了, 下次調(diào)用此函數(shù)時(shí)再自動(dòng)產(chǎn) 生, 還要再賦值, 退出時(shí)又自動(dòng)消失。
二、形式參數(shù) 形式參數(shù)是指在函數(shù)名后面的小括號(hào)里定義的變量, 用于接受來(lái)自調(diào)用函數(shù)的參數(shù)。形式參數(shù)在函數(shù)內(nèi)部可以象其它局部變量 那樣來(lái)作用。 例如: puthz(int x, int y, int color, char *p) { int i, j, k; /*定義局部變量*/ <程序體> } 其中x, y, color, *p為函數(shù)的形式參數(shù), 不需要再進(jìn)行說(shuō)明就可在該函數(shù)內(nèi)直接使用。
三、全程變量 全程變量是指在所有函數(shù)之外說(shuō)明的變量,它在整個(gè)程序內(nèi)部者是"可見(jiàn)的", 可以被任何一個(gè)函數(shù)使用, 并且在整個(gè)程序的運(yùn)行 中都保留其值。全程變量只要滿足在使用它以前和函數(shù)以外這兩個(gè)條件,可在程序的任何位置進(jìn)行說(shuō)明, 習(xí)慣上通常在程序的主函數(shù) 前說(shuō)明。 例如: #include<stdio.h> int test; /*定義全程變量*/ void f1(int x, float y); /*子函數(shù)說(shuō)明*/ void f2(void); /*子函數(shù)說(shuō)明*/ main() { test=5; /*給全程變量賦值*/ f1(20, 5.5); /*調(diào)用有形式參數(shù)的子函數(shù)f1()*/ /*test的值變成115*/ f2(); /*調(diào)用f2(), test的值變?yōu)?150*/ } void f1(int x, float y) { float z; /*z定義為局部變量*/ z=x*y; /*計(jì)算*/ |