欢迎来到@一夜看尽长安花 博客,您的点赞和收藏是我持续发文的动力
对于文章中出现的任何错误请大家批评指出,一定及时修改。有任何想要讨论的问题可联系我:3329759426@qq.com 。发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。
专栏:
文章概述:对变量及其作用域 的介绍
关键词:变量及其作用域
本文目录:
变量及其作用域
变量好比一个小盒子,能容纳数据,有名字,有地址,有大小,类型。。。
两个重要概念:
- 生存期:什么时候分配内存,什么时候释放内存
- 作用域:在什么位置可见,什么位置不可见
全局变量
定义在函数外的变量,静态的生存期
- 全局变量可以初始化,可以用表达式
- 全局变量可以在多个函数间,多个文件间共享
- 全局位置不能执行非定义语句
int a = 100;
int b = 200;
int c;
c = a + b; // 不声明,直接赋值会编译错误!
int main()
{
cout << c << endl;
return 0;
}
此是反面教材, 不能在全局位置执行其它语句
变量可以在声明时初始化,也可以只声明。 当未初始化时,变量的值是随机的,此是很多bug发源地
局部变量:
函数内部定义,函数执行时存在
局部变量可以和全局同名,会产生覆盖效果
变量赋值
赋值是最常见的动作,但其意义非凡!!
理解这个很重要,澄清将来的指针动作全靠它!
变量是一个小盒子,装着数据。 a = b; 的意思是:把 b 中的数据复制一份,放到 a 中。 a 中原来的数据被“踩死”了。
试试看,a b 现在值多少?
int a = 5, b = 8;
a = a + b;
b = a - b;
a = a - b;
cout << a << "," << b << endl;
如何交换两个变量?
如何交换:酱油和醋,找个空瓶子 空瓶 = 酱油;酱油 = 醋;醋 = 空瓶;
【示例】交换 a, b 变量的值
int a = 5, b = 8;
int t = a; a = b; b = t;
cout << a << "," << b << endl;
这样做,还有什么缺点吗?
大括号作用域
大括号开辟了,新的一层,嵌套作用域
- 大括号作用域可以嵌套,实际上局部作用域就是最外一层大括号。
- 大括号作用域可以嵌套覆盖
- 编程习惯:尽量缩小变量的作用域。
更好的交换变量方法???
int a = 5, b = 8;
#缩小作用域
{ int t = a; a = b; b = t; }
cout << a << "," << b << endl;