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;
}
由于全程变量可被整个措施内的任何一个函数利用,所以可作为函数之间通报参数的手段,但全程变量太多时,内存开销变大。