const constptr 和引用的盲点(未解决)

#include<iostream>
//const 和 引用的值必须初始化
//等号左侧是const或者const和引用,右侧可以是数字,普通变量-等号左侧是const和指针,右侧必须是const或者引用  ---
//---但是等号右侧是const,则左侧必须是const
using namespace std;

int j = 0; //这里规定i和j都必须定义在函数体外
constexpr int i = 2; //这里规定i和j都必须定义在函数体外
int main()
{
	const int *p = nullptr; // p是一个指向整形常量 的指针
	constexpr int * q = nullptr; //  q是一个指向整数的 常量指针
	
	constexpr const int *p0 = &i;
	constexpr int *p1 = &j;
	constexpr const int  *p2 = &j;
	const int *p3 = &j;//引用的本质是一个常量指针! 

	{//const引用让变量拥有只读属性 (不能通过引用来修改原值了)
		int b ;//这里赋不赋初值都对
		const int &a = b;
	}
	{//如果用一个对象去初始化另一个对象,则它们是不是const都无关紧要。
		int c = 10;
		const int d = c; 
		int e = d;
	}
	{//对常量的引用,引用及其对应的对象都是常量。
		const int x = 1024;
		const int & y = x;
		//	int & y1 = x; 不对
		//	y = 43;  不对,试图用一个非常量引用指向一个常量对象
	}
	{//指针引用===等号左侧是const和指针,右侧必须是const或者引用
		int i1 = 2;
		const int *j = 0;
		const int *i2 = &i1;
		const int *i3 = j;
	}
	
	system("pause");
}

  

  不过仍旧有疑问:

就是i和j为什么必须定义到函数体外部,并且定义在内部显示

 

转载于:https://www.cnblogs.com/xiaochige/p/6752321.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值