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為什么必須定義到函數體外部,並且定義在內部顯示

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM