大家好,欢迎来到IT知识分享网。
在C语言中,程序的编译单位是源程序文件, 一个源文件可以包含一个或若干个函数。在函数内定义的变量是局部变量 而在函数之外定义的变批称为外部变量,外部变量是全局变量(也称全程变量)。全局变量可以为本文件中其他函数所共用。它的有效范围为从定义变量的位置开始到本源文件结束。
局部变量说明:
全局变量说明:
变量的存储类别
auto变量
关键字”auto” 可以省略, auto 不写则隐含确定为“自动存储类别“,它属于动态存储方式。程序中大多数变量属于自动变量。前面介绍的函数中定义的变量都没有声明为 auto, 其实都隐含指定为自动变量。
eg: auto int b,c=3; 等价于 int b,c=3;
static声明
有时希望函数中的局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次该函数调用时,该变量已有值,就是上一次函数调用结束时的值。这时就应该指定该局部变量为“静态局部变量“,用关键字 static 进行声明。
#include <stdio. h> void main() {
int f(int); int a=2,i; for(i=O;i<3;i++) printf("%d ",f(a)); } int f(int a) {
auto int b=O; static int c=3; b=b+l; c=c+l; return(a+b+c); } 运行结果为: 7 8 9
register变量
extern 声明外部变量
用1个简单的例子来说明这种引用。 eg:用extern 将外部变社的作用域扩展到其他文件 本程序的作用是给定b的值,输人a和m,求a*和a的m次方的值。 文件filel.c中的内容为: #include < stdio. h> int A; //定义外部变量 void main() {
int power(int); //函数声明 int b=3,c,d,m; printf("enter the number a and its power m: \n"); scanf("%d,%d",&A,&m); c=A * b; printf("%d * %d= %d\n" ,A,b, c); d=power(m); printf("%d * * %d= %d\n",A,m,d); } 文件 file2.c中的内容为: extern A; //声明A为一个已定义的外部变量 int power(int n) {
int i,y=l; for(i = l ;i<=n;i++) y *= A; return(y); }
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/126940.html