반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- FIFO 설계
- cadence conformal eco
- Async FIFO
- keynote 사용법
- asynchronous fifo
- LEC
- SPI mode
- 자료구조
- Sync FIFO
- lec check
- keynote 도형 복사
- malloc
- BSS
- Keynote 표
- booth multiplier
- C언어
- 연산 가속기 설계
- keynote
- Cortex-M3
- keynote 도형 회전
- LinkedList
- 비동기 FIFO 구조
- i2c
- ACK Polling
- booth algorithm
- c
- ISR
- booth multiplier 설계
- 곱셈기 설계
- ARM
Archives
- Today
- Total
JINTBEAT Design Life
C언어 공부 - 포인터 변수가 참조하는 대상의 변경을 허용하지 않는 const 선언 본문
반응형

포인터 변수를 대상으로도 const 선언을 할 수 있다.
const int * ptr = &num ;


다음과 같이 컴파일 에러가 발생한다.
✏️ const 선언은 "포인터 변수 ptr을 이용해서 ptr이 가리키는 변수에 저장된 값을 변경하는 값을 허용하지 않겠다" 는 의미이다.
그렇다고 해서 포인터 변수 ptr이 가리키는 변수 num이 상수화 되는 것은 아니다.
num = 40; 처럼 변수 num에 저장된 값을 변경하는 것은 허용이 된다.
그럼 무슨 의미인가? 포인터 변수가 상수라는 뜻은 한번 주소 값이 저장되면 그 값의 변경이 불가능하다는 뜻이며, 이는 한번 가리키기 시작한 변수를 끝까지 가리켜야 한다는 뜻으로 이해할 수 있다.
✏️ 포인터 변수의 상수화 - const 선언은 포인터 변수의 이름 앞에 올 수 있다.
int * const ptr = &num ;
이렇게 되면 포인터 변수 ptr은 상수가 된다. 포인터 변수 ptr이 상수라는 뜻은 한번 주소 값이 저장되면 그 값의 변경이 불가능하다는 뜻이며, 이는 한번 가리키기 시작한 변수를 끝까지 가리켜야 한다는 뜻으로도 이해할 수 있다.
✏️ 하나의 포인터 변수를 대상으로 두 가지 형태의 const 선언을 동시에 할 수도 있다.
const int * const ptr = &num ;
✏️ const 선언이 갖는 의미
const 선언이 특별한 기능을 제공하는 것은 아니지만, const 선언을 많이하면 그만큼 프로그램의 안전성은 높아진다.
반응형
'🖥️ - C language' 카테고리의 다른 글
| C언어 구조체(struct)와 공동체(union) — 개념부터 시뮬레이션 활용까지 (0) | 2025.05.30 |
|---|---|
| C언어 - 문제 풀이(배열과 포인터) (0) | 2025.05.21 |
| C언어 - Call by value vs Call by Reference (0) | 2025.05.18 |
| C언어 - 함수와 포인터에 대한 이해 (0) | 2025.05.18 |
| C언어 공부 - 포인터 문제풀이 (0) | 2025.05.18 |