C程序流程设计--变量

发布于 2021-01-20 14:41

量是对程序中数据的存储空间的抽象,变量的属性数据类型:变量所持有的数据的性质(操作属性

一、局部变量

在函数内定义,只在本函数内有效。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=4sub:a=6,b=7main: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;i<n;i++)    {   if(array[i]>max)  max=array[i];         else if(array[i]<min)  min=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不是变量定义,可扩展外部变量作用域

往期回顾



01

ESP8266模块详解


02

|DA转换器是什么?快来一起学习一下吧!


03

STM32中断优先级详解


04

|STM32下载程序新思路--使用串口下载程序


本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。

相关素材