当前位置: 首页 > 编程语言 > C语言 > 正文

C语言基础教程(二)数据类型、变量和运算符(6)

时间:2007-05-04 王大刚

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