<4>C++ Primer 变量

6 篇文章 1 订阅

一、变量

1.什么是变量

变量是提供一个具名的、可供程序操作的存储空间。
也就是说变量,具有自己独特的名字,存储空间和公共类型。
对于c++程序员来说,变量(variable)和对象(object)一般可以互换使用。
#include<iostream>
using namespace std;


class Dog
{

};
int main()
{
	int i;
	Dog dog;
}

这里的i和dog都是变量或者说对象。


2.左值和右值

#include<iostream>
using namespace std;

int main()
{
	int i=10;
	i = i + 2;
}

在i=i+2;这行代码中,左边的i为左值,右边的i为右值,
左边的i表示i的地址,右边的i表示i的值,也就是说把i的值+2在赋给i的地址。
也可以理解为左值在等号左边,右值在等号右边,且常数不能为左值。

3.定义和声明

#include<iostream>//Source.cpp
using namespace std;


int i = 0;//定义
extern int j;//声明
extern double pi = 3.14;//定义
int main()
{
	cout << i <<"  "<<j++<< endl;
	cout << pi << endl;
	system("pause");
	return 0;
}

//Source1.cpp
int j = 1;//定义
//double pi = 3.14159;//定义
//一个工程中可以有两个CPP文件
//但是不能有两个主函数


1)简单来说,定义就是定义一个变量(对象),为一个变量分配空间,和初始化他的值。在一个工程中同名变量只能存在一个(单指全局变量)。
2)而声明则是说明我要用一个变量了,也就是声明要用一个已经存在的变量。如上所示,在Source1.cpp中定义了j,在Source.cpp中就可以声明j对其进行使用。
3)对一个声明进行初始化则他就不再是一个声明而是一个定义了,因为声明是不会分配空间的,而初始化会分配空间,也就使得声明变成了定义。如上所示,两个cpp文件中的pi定义是不可共存的。

4.作用域

#include<iostream>
using namespace std;

int i = 20;
void test()
{
	int i = 50;
}
int main()
{
	int i = 100;
	for (int i = 0; i < 10; i++)
	{
		cout << i<< endl;
	}
	cout << i << endl;
	cout << ::i << endl;
	system("pause");
	return 0;
}


1)全局作用域:等于20的i为全局作用域,他从定义后开始存在,直到工程结束为止删除。
2)局部作用域:等于50的i和等于100的i为局部作用域,他们作用于test函数和main函数中,从定义开始存在,函数结束后删除。
3)语句作用域:for循环中的i为语句作用域,作用于for循环中,循环结束删除。
 4 )变量屏蔽 (隐藏):在main函数中会优先使用i=100的i,在for中会优先使用i=0的i,我们也可以通过::i的形式使用全局变量中的i。
5)Source.cpp中声明的是Source1.cpp中的全局变量,他在什么位置声明就是什么作用域的变量。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值