变量是对程序中数据的存储空间的抽象,变量的属性,数据类型:变量所持有的数据的性质(操作属性)
一、局部变量
在函数内定义,只在本函数内有效。main中定义的变量只在main中有效,不同函数中同名变量,占不同内存单元。形参属于局部变量。可定义在复合语句中有效的变量
局部变量可用存储类型:auto register static (默认为auto)
函数举例:
main()
{ int a,b;
a=3;
b=4;
printf("main:a=%d,b=%d\\n",a,b);
sub();
printf("main:a=%d,b=%d\\n",a,b);
}
sub()
{ int a,b;
a=6;
b=7;
printf("sub:a=%d,b=%d\\n",a,b);
}
运行结果:
main:a=3,b=4
sub:a=6,b=7
main:a=3,b=4
二、全局变量
在函数外定义,可为本文件所有函数共用,从定义变量的位置开始到本源文件结束,及有extern说明的其它源文件。
外部变量说明:extern 数据类型 变量表;
外部变量定义与外部变量说明不同;
若外部变量与局部变量同名,则外部变量被屏蔽
外部变量可用存储类型:缺省 或 static
应尽量少使用全局变量,因为:
Y全局变量在程序全部执行过程中占用存储单元Y降低了函数的通用性、可靠性,可移植性Y降低程序清晰性,容易出错。

float max,min;
float average(float array[], int n)
{ int i; float sum=array[0];
max=min=array[0];
for(i=1;iif(array[i]>max) max=array[i];
else if(array[i]array[i];
sum+=array[i];
}
return(sum/n);
}
main()
{ int i; float ave,score[10];
/*Input */
ave=average(score,10);
printf("max=%6.2f\\nmin=%6.2f\\n
average=%6.2f\\n",max,min,ave);
}

- 局部变量默认为auto型uregister型变量个数受限,且不能为long, double, float型
- 局部static变量具有全局寿命和局部可见性
- 局部static变量具有可继承性
- extern不是变量定义,可扩展外部变量作用域
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
程序
+关注
关注
117文章
3836浏览量
84745 -
变量
+关注
关注
0文章
615浏览量
29363 -
存储空间
+关注
关注
0文章
55浏览量
10988
发布评论请先 登录
相关推荐
热点推荐
跟着狄泰唐老师学C语言进阶教程的笔记之变量的属性
extern "C"{int f(int a, int b){ return a + b;}}7.小结auto 变量存储在程序的栈中,默认属性static 变量存储在
发表于 05-28 10:40
嵌入式C语言之变量与常量详解
目前,很多的C语言教材都是针对通用的计算机编程,创客学院嵌入式开发培训讲师针对嵌入式软件的开发特点。讲解嵌入式C语言在各种项目中要用到的知识点。 浅谈嵌入式C语言之变量与常量详解
发表于 07-05 09:51
高效的C编程之变量类型
14.8 变量类型 ARM C编译器支持基本的数据类型:char、short、int、long long、float和double。表14.2说明了armcc对C语言所使用的数据类型的映射。 表
发表于 10-17 16:50
•3次下载
C语言中局部变量和全局变量
全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局
C语言变量应用详解
变量其实只不过是程序可操作的存储区的名称。C 中每个变量都有特定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算
发表于 03-18 11:18
•885次阅读

C程序流程设计之变量
评论