C 언어 상수 포인터 및 상수 개체에 대한 포인터 | C 언어

상수 포인터와 상수 객체에 대한 포인터를 논의하기 전에 먼저 포인터가 무엇인지 명확히해야합니다.

바늘

포인터는 데이터 오브젝트 또는 기능에 대한 참조이다
포인터를 나타내는 주소유형 객체 나 함수를 상기가
포인터 (이름)도이다 선언 개체 .

int var = 8848;
int* ptr = &var;

ptr은 변수 var에 대한 int 포인터입니다.

상수 포인터 및 상수 개체에 대한 포인터

상수 포인터 상수 포인터를
정의 할 때는 나중에 값을 수정할 수 없으므로 포인터를 초기화해야합니다.

int var = 8848;
int var_c = 8086;
int* const ptr = &var;

*ptr = 1024;	//OK
ptr = &var_c;	// Error: assignment of read-only variable 'ptr'. 
// prt被const修饰,是一个常量指针,是只读的 

세 번째 줄의 const 다음에는 포인터 ptr이옵니다.이 const는 ptr이 상수 포인터라고 말하면서 ptr의 객체를 수정합니다.
상수 객체에 대한 포인터

int var = 8848;
int var_c = 8086;
int const * ptr;	// 与下一行是等价的
const int* ptr;		// 与上一行是等价的

ptr = &var_c;	// OK
*ptr = 1024;	// Error

위의 예에서 const 수정자는 * ptr이므로 * prt는 읽기 전용입니다. 그러나 ptr은 포인터 객체이고 ptr은 상수가 아닙니다.

요약

포인터 자체 가 상수 임을 강조하는 상수 포인터 (객체에 대한 상수 포인터) .
상수 객체 에 대한 포인터로 포인터 가리키는 객체가 상수임을 강조합니다 .
물론 상수 객체에 대한 상수 포인터도 있습니다 (const int * const prt = & var;)

추천

출처blog.csdn.net/qq_40759015/article/details/114363274