C 프로그래밍 언어에서 *p는 포인터에 저장된 값을 나타내고, p는 값의 주소를 나타내며 이를 포인터라고 합니다.
const char* 및 char const*는 포인터가 상수 문자를 가리킬 수 있고 포인터가 가리키는 문자의 값을 변경할 수 없음을 나타냅니다. 하지만 포인터는 상수가 아니고 다른 상수 문자를 가리킬 수 있으므로 포인터의 값을 변경할 수 있습니다.
char* const는 포인터가 문자를 가리킬 수 있고 포인터가 가리키는 문자의 값이 변경될 수 있음을 의미합니다. 하지만 이제 포인터는 상수이고 다른 문자를 가리킬 수 없기 때문에 포인터의 값을 변경할 수 없습니다.
const char* const은 포인터가 상수 문자를 가리킬 수 있고 포인터가 가리키는 문자의 값을 변경할 수 없음을 의미합니다. 포인터는 이제 상수이고 다른 상수 문자를 가리킬 수 없기 때문에 포인터 값을 변경할 수도 없습니다.
문법 명명의 원칙은 오른쪽에서 왼쪽입니다.
// constant pointer to constant char const char * const // constant pointer to char char * const // pointer to constant char const char *
잘못된 코드의 주석 처리를 제거하고 오류를 확인하세요.
실시간 시연
#include <stdio.h> int main() { //Example: char const* //Note: char const* is same as const char* const char p = 'A'; // q is a pointer to const char char const* q = &p; //Invalid asssignment // value of p cannot be changed // error: assignment of read-only location '*q' //*q = 'B'; const char r = 'C'; //q can point to another const char q = &r; printf("%c</p><p>", *q); //Example: char* const char u = 'D'; char * const t = &u; //You can change the value *t = 'E'; printf("%c", *t); // Invalid asssignment // t cannot be changed // error: assignment of read-only variable 't' //t = &r; //Example: char const* const char const* const s = &p; // Invalid asssignment // value of s cannot be changed // error: assignment of read-only location '*s' // *s = 'D'; // Invalid asssignment // s cannot be changed // error: assignment of read-only variable 's' // s = &r; return 0; }
C E
위 내용은 C에서 const char*p, char*const p 및 const char*const p의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!