变量作用域的分类

变量作用域的分类

在一个程序中,我们往往会定义很多的变量,形式参数等,但是我们定义这些变量的生命周期,也就是它能在哪些时候被我们所用,它在什么时候会被释放掉等,可能也会在不经意之间产生错误,因为我们的C语言在书写的时候,有时候并不会像java等IDE一样,会提示我们的作用域,会为我们直接在编译前让我们强制的进行转换。

作用领域分类:
  1. 文件作用域
  2. 函数作用域
  3. 代码块作用域
  4. 函数原型作用域
文件作用领域:
从定义的位置开始一直到整个程序执行结束都是有效的,称为全部变量
函数作用域
函数内部声明定义的变量,称为局部变量
代码块作用域
有时候我们会在函数内部使用{}来进行局部操作,那么这个时候在{}内定义的变量,只能在代码块内部执行
函数原型作用领域
C语言或者C++都是要对定义的函数进行声明的,如int swap(int a,int b);那么这个时候所定义出来的变量其实它的作用范围仅仅是在声明时候。

下面以代码的形式形象的介绍下作用域区别:

#include<stdio.h>
#include<stdlib.h>


int student_num  = 20;//全局变量,作用领域为整个程序
void export_student(int num);//函数原型作用领域

int main(void){
    printf("this class has %d students!!\n",student_num);
    export_student(student_num);
    return 0;
}


void export_student(int num){
    int i;//函数内部的局部变量,作用范围为函数内部
    for(i = 0; i <= num;i++){
        int numth = i;//函数内部的代码块变量,作用域为代码块中
        printf("this is the %dth student\n",numth);
    }   
}

这是很简单的一个程序,但是已经把几种作用域都表现了出来

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值