C++入门学习:函数篇 补充:变量

变量的存储方式和生存期

存储特性与作用域

分类:按作用域范围可分为 局部变量 和 全局变量;

局部变量

局部变量也称为内部变量。用“{}”括起来的代码部分,属于一个局部作用域。如果这个局部作用域包含更小的子作用域,则子作用域具有较高的优先级。在一个局部作用域内,变量从其声明或定义的位置开始,一直作用到该作用域结束为止。

结论
1.“{}”中定义的变量,其作用域只在该复合语句范围内;
2.形参变量名与实参变量名可以相同也可不同;
3.不同函数中可以使用相同的变量名,代表不同的对象,分配不同的单元;
4.main()函数中定义的变量只能在main()函数中使用,不能在其他函数中使用,main()函数中也不能使用其他函数中定义的变量;

全局变量

全局变量也称为外部变量,在函数体外定义,作用域为整个源程序。注意全局变量的作用域从定义的位置开始,至整个源程序有效,所以一般把定义全局变量放在最前面。一般不提倡使用全局变量进行操作。

生存期

课本描述
课本描述

auto变量

函数中的局部变量,未声明为static存储类别的都属于auto变量,auto变量存储在栈区中,auto声明常常省略;

int a,b=c;//默认定义为auto变量,auto省略;
static声明局部变量

static变量分配在静态数据区,程序运行完毕,static变量所分配的空间才会释放;

//以记录函数被调用的次数为例

int count()
{
//定义局部静态变量,初始值只会赋值一次;
static int count=0;
count++;
return count;
}
int main()
{
for(int i=0;i<10;i++)
cout<<count();
}

对比说明:
课本描述

用extern声明全局变量

用extern对变量作全局变量声明,即可从声明处,合法使用该全局变量;

int max(int x,int y);
int main()
{
extern A,B;
cout<<max(A,B)<<endl;
return 0;
}
int A=13,B=-8;
int max(int x,int y)
{
int z;
z=x>y?x:y;
return z;
}

说明:
课本描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值