티스토리 뷰
반응형
C언어에서 포인터를 상수로 만드는 방법은 3가지가 있다. 그리고 각 상수들은 서로 기능이 조금씩 다르다.
- 포인터 상수 : 포인터가 가리키는 값을 변경할 수 없고, 포인터가 가리키는 주소를 변경할 수 있다.
- 상수 포인터 : 포인터가 가리키는 주소를 변경할 수 없고, 포인터가 가리키는 값을 변경할 수 있다.
- 상수 포인터 상수 : 포인터가 가리키는 주소와 값을 변경할 수 없다.
포인터 상수 (Pointer to Const)
const int *p;
int const *p; // 이렇게도 가능하지만, 잘 사용하지 않는다.
포인터 상수가 가리키는 주소를 변경이 가능하다.
// 포인터 상수가 가리키는 주소를 변경할 수 있다.
p = &a;
p = &b;
하지만 포인터 상수가 가리키는 값을 변경할 수 없다.
*p = 0; // 에러!
상수 포인터 (Const Pointer)
int *const p = &a;
상수 포인터는 가르키는 주소를 변경할 수 없다. 하지만 값을 변경할 수 있다.
*p = 100; // 가능
p = &b; // 오류, 선언 후에는 주소 변경 불가능
상수 포인터는 선언 시 초기화를 해야 한다. 선언 후에는 주소를 변경할 수 없다.
int *const pa;
pa = &b; // 오류, 선언 후에는 주소 변경 불가능
상수 포인터 상수 (Const Pointer to Const)
상수 포인터 상수는 가리키는 주소와 그 주소의 값을 모두 변경할 수 없다.
const int *const p = &a;
반응형
'C 언어' 카테고리의 다른 글
C 언어] 2차원 배열을 함수의 매개변수로 사용하는 방법 (0) | 2024.10.21 |
---|---|
C 언어] 2차원 배열 포인터 사용법 (0) | 2024.10.21 |
공지사항