C语言------作用域

一.作用域

   作用域描述了程序中可以访问一个标识符的一个或多个区域, 一个C变量的作用域可以是代码块作用域,函数原型作用域,或者文件作用域. 例如,整个函数体是一个代码块,一个函数内的任一复合语句也是一个代码块.在代码块中定义的变量具有代码块作用域,从该变量被定义的地方到包含该定义的代码块的末尾该变量均可见.函数的形式参量尽管在函数的开始花括号前进行定义,同样也具有代码块作用域,隶属于包含函数体的代码块.

例题1:

   

double blocky(double cleo)
   {
     double patrick = 0.0;
     ...
     return patrick;
   }
  // cleo和patrick都有直到结束花括号的代码块作用域.

 例题2: 

 double blocky(double cleo)
   {
     double patrick = 0.0 ;
     int i;
     for( i = 0;i < 10;i++)
     {
       double q = cleo * i;  //q的作用域的开始
       ...
       patrick *= q;        //q的作用域的结束
     }
     ...
     return patrick;
   }

q的作用域被限制在内部代码块内,只有该代码块内的代码可以访问q.

 

函数原型作用域适用于函数原型中使用的变量名.

int mighty(int mouse,double large);

从变量定义处一直到原型声明的末尾,也就是说处理一个函数原型的参数时,它所关心的只是该参数的类型;使用的名字通常是无关紧要的,不需要使他们和在函数定义中使用的变量名保持一致,名字起作用的一种情形是变长数组参量:

void use_a_VLA(int n,int m,ar[n][m]);

一个在所有函数外定义的变量具有文件作用域,具有文件作用域的变量从它定义处理包含该定义的文件结尾处都是可见的.

例题3:

#include <stdio.h>
int units = 0;
void critic(void);
int main(void);
{
....
}
 
void critic(void)
{
...
}
//这里,变量units具有文件作用域,在main()和critic()中都可以使用它,因为它们可以在不止一个函数中使用,文件作用域变量也被称为全局变量

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值