C++数据类型、作用域和对象

C++数据类型和对象


对象的定义

  1. 定义一个对象age,编译器会对其**分配空间(初始化)**并赋值。如下
    int age=18;
  2. age对象进行声明(当age对象是在其他源文件中定义的时候需要声明),如下:
    extern int age;

用extern关键字,注意一个对象只能被定义一次,但可以被声明很多次。
注意声明格式: extern+数据类型+对象名


作用域的嵌套

int main()
{
	int age = 18;
	int people ;
	extern  int age;
	{  //作用域的嵌套
		int val1=1, val2=3;  
		//对象val1和val2的作用域从10行(声明处)开始,到12行(所在的域块)结束
		people = val1 + val2;  
		//对象people的作用域从6行开始,到14行结束。
	}
}

常量修饰符

用关键字const来保证对象pi不被修改,在此开始任何对pi进行修改的操作都是非法的

const double pi = 3.1415; 

const操作必须要保证对象初始化(可以初始化变量),否则非法

int age=10;	
const int num0 = age;  //此时已经给num0赋值,并且不能被修改。
age=5;  //即使age被修改,但是num0已经被初始化,所以num0不受影响
cout<<num0;  //结果是10
cout<<age;  //结果是5

关键字constexpr同样保证对象不被修改,与const不同的是,constexpr在初始化对象时,必须要给对象赋一个常量值

constexpr int num = 123; 
constexpr int num3=num+1  //num必须是const或constexpr类型的常量,以确保num3也是常量。

//如下:
int i=3;
const int j=i+3;  //表达式正确
constexpr int j=i+2;  //表达式错误,因为i不是一个常量,可能改变,无法确保j是一个不变的constexpr型。

常量分为:编译时常量和运行时常量。如下:

int num=100;  //num时编译时常量,即程序在编译的时候就可以获取对应的值
const int num2=num; //num2是运行时常量,即在程序编译的时候不能获取对应的值,在运行到这一行的时候才能获得num2的值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值