变量的作用域

对于一个变量来说,不同的声明方式变量的作用域也不同。

变量根据其作用域的范围可以分为两种:局部变量全局变量


局部变量

定义:在函数体内定义的变量

声明:数据类型 变量名

*static 数据类型 变量名 为静态局部变量 未赋值是值为0 

作用范围:只在函数体内部有效,一旦出了在函数体外就无效。

function1()

{

int x = 1;

}

function2()

{

int x = 2;

}

在这两个函数中有相同变量x,但它们各作用于自己的函数体内所以它们互不相关。

*当主函数在调用别的函数时定义相同变量,主函数中的变量不会影响被调用函数中的变量。其局部变量的作用域只在自己函数体的内部。

*局部变量在使用时才会分配内存的地址空间(堆栈中)。(存放区域可以查看我的博客里进程的概念里)

*局部变量定义时需要赋初值。


全局变量

定义:在函数外定义的变量

声明方式:extern 类型说明符 变量名(extern 可以省略不写)

作用范围:作用于全局,整个代码内

#include <stdio.h>

extern int x = 1;   //等价于 int x = 1;

function()

{

x = x +1;

}

mian()

{

int y =2;

x = y + x;

function();

printf(“x = %d\n”, x);

}

该代码段中x为全局变量,会影响主函数和function函数中的x,最终的输出结果为x = 4。

*全局变量在编译是就已经分配到了内存空间。(存放区域可以查看我的博客里进程的概念里)

*外部变量可加强函数模块之间的数据联系,但是又使函数要依赖这些变量,因而降低了函数的独立性。

*static 数据类型 变量名 为静态全局变量  与全局变量一样未赋初值是未0 静态全局变量作用于文本内,而全局变量可作用于文本外。 








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值