变量——不同类型的变量,你是否知道其作用域?

1. 具有外联接的全局变量:

在所有函数外部声明的变量,且没有static修饰符,例如:

/*  a.c 文件 */

int total = 0;

此类变量具有文件作用域,在本文件中从定义开始处至文件结尾均可见。在本文件的开始至定义此变量处及其他文件中,可使用extern修饰符来引用该变量。

例如:

/* b.c文件 */

extern int total;

进行上述声明后,可在b.c中使用total变量

 

2. 具有内连接的全局变量:

在所有函数外部声明的变量,且有static修饰符,例如:

/*  a.c文件 */

static int total;

此类变量具有文件作用域,只能在本文件中使用,从声明变量处开始,至文件结尾均可见。

 

3. 自动变量:

在代码块中定义的变量,例如:

int main(void)

{

  

   int total;

  

}

此类变量具有代码块作用域,从声明变量处开始,至代码块结束均可见。

 

4. 具有静态存储周期的自动变量:

在代码块中定义的变量,且有static修饰符,例如:

int main(void)

{

  

   static int total;

  

}

此类变量同样具有代码块作用域,从声明变量处开始,至代码块结束均可见。

 

5. 寄存器变量:

在代码块中定义的变量,且有register修饰符,例如:

int main(void)

{

  

   register int total;

  

}

    此类变量同样具有代码块作用域,从声明变量处开始,至代码块结束均可见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值