c++ const 指針的情況

其實很簡單

int a = 1, b = 2;
	// 正確
	{
		int *p = &a;
		p = NULL;
		*p = 5;
	}
	{
		const int *p = &a;
		p = &b; //正確
		//*p = 5; //錯誤
	}
	{
		int const *p = &a;
		p = &b; //正確
		//*p = 5; //錯誤
	}
	{
		int * const p = &a;
		//p = &b; //錯誤
		*p = 5;
	}

看const的後面緊跟的是什麼就可以了,1和2都是緊跟的int* ,所以const修飾內存,不可以修改內存中的值

而第3種const後是指針p,所以指針p本身(指向什麼)不可以改變,但是可以改變內存中的值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章