Fourth C语言之分辨变量与函数,搞清内存

1.变量

变量分为局部变量,全局变量,静态局部变量,静态全局变量

(1)局部变量

局部变量也叫auto自动变量,一般情况下在{}内部定义的变量叫自动变量,它只对定义的函数范围内有效,而如果在在语句中,那么只在语句中有效,随着函数或者语句的结束那么它的运用也结束了,我们定义的时候不需要强调auto,就直接定义就行,而main函数中的变量其实也算局部变量。

int main()
{
    int a;定义的a在main函数中有效,main函数结束就失效
    for(int i=0;i<n;i++)//i定义在for语句当中只在for语句中有效
    {
        代码体
    }

(2)全局变量

全局变量定义在函数外部,作用于整个文件,全局变量在作用域中是唯一的,而其他文件需要用的时候是需要声明的,全局变量的生命周期贯穿整个函数,用到其他变量时,变量的值也会被赋值被改变,就是说,全局变量会随着主函数中代码的运行而改变,这个是一个需要注意的点。

而定义全局变量和局部变量的时候可以用同一个变量名,因为局部变量存储在栈区,而全局变量存储在数据区,所以可以用同一个变量名,不过,运行时会采用就近原则。

int a=10;//全局变量存储于数据区
int main()
{
   int a=20;
   printf("%d\n",a);//打印时会打印20,因为会用就近的,存储在栈区
   return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值