3. 变量
4.1 变量说明 Turbo C2.0规定所有变量在使用前都必须中以说明。一条变量说明语句由数据 类型和其后的一个或多个变量名组成。变量说明的形式如下: 类型 <变量表>; 这里类型是指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为函数的形式参数, 不需要再进行说明就可在该函数内 直使用。
三、全程变量 全程变量是指在所有函数之外说明的变量, 它在整个程序内部者是"可见的", 可以被任何一个函数使用, 并且在整个程序的运行中都保留其值。全程变量只要满 足在使用它以前和函数以外这两个条件, 可在程序的任何位置进行说明, 习惯上通 常在程序的主函数前说明。 例如: #include<stdio.h> int test; /*定义全程变量*/ void f1(int x, float y); /*子函数说明*/ void f2(void); /*子函数说明*/ main() { test=5; /*给全程变量赋值*/ f1(20, 5.5); /*调用有形式参数的子函数f1()*/ /*test的值变成115*/ f2(); /*调用f2(), test的值变为1150*/ } void f1(int x, float y) { float z; /*z定义为局部变量*/ z=x*y; /*计算*/ test=test+z; } void f2(void) { int count=10; /*定义局部变量并初始化*/ test=test*count; }
由于全程变量可被整个程序内的任何一个函数使用, 所以可作为函数之间传递 参数的手段, 但全程变量太多时, 内存开销变大。
|