C程序流程设计之变量

描述

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

一、局部变量

在函数内定义,只在本函数内有效。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不是变量定义,可扩展外部变量作用域
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分