1. 程式人生 > 其它 >指標常量與常量指標

指標常量與常量指標



程式碼如下:

#include <iostream>

void RefConst()
{
	char greeting[] = "Hello world!"; // ---- (0)
	char* p = greeting; // non-const pointer, non-const data
	const char* p = greeting; // non-const pointer, const data (常量指標、指向常量的指標: *p,即'指標指向的值'為const,不能修改)  ---- (1)
	char* const p = greeting; // const pointer, non-const data (指標常量、指標修飾的常量: 指向字元的指標常數,即const指標,不能修改p指標,但可修改p指標指向的內容)
	const char* const p = greeting; // const pointer, const data

}

int main() {}

/*
	(0) 如果用const定義char型別的greeting字串,下方的 “char* p = greeting; ” 將會報錯無法編譯通過,∵不是常量接收;
		而當沒有用常量定義的額時候下方可以任選,可以定義新的變數並定義成常量,這意味著變數可以常量,但常量不能為變數;
	(1) p指向greeting,而greeting不是const,可以直接通過greeting變數來修改greeting的值,但卻不能通過p指標來修改;
		const char* p 等價於 char const* p;
*/




作者:艾孜爾江