λͺ¨λ μ€μ΅ μ½λλ κΉμ±μ½ λνλμ
"Do it ! CμΈμ΄ μ
λ¬Έ" μ±
μ λ΄μ©μ λ°νμΌλ‘ μ€μ΅νκ³ λ΄μ©μ μμ½ν κ²μ
λλ€.
β» μμ
μ©λκ° μλλ©°, tipsλ₯Ό ν΅ν΄ λ°°μ΄ λ΄μ©μ 볡μ΅νκ³ μ μ€μ€λ‘ 곡λΆνλ λͺ©μ μΌλ‘ μ¬λ¦¬λ κ²μ΄λ
λΆλ²μΌλ‘ μ¬μ©νλ κ²μ κΈμ§ν©λλ€.
ν¬μΈν° λ³μλ μΌλ° λ³μμ const ν€μλλ₯Ό μ¬μ©νλ μμΉκ° μ’ λ€λ₯΄λ€.
μλνλ©΄ ν¬μΈν° λ³μλ ν¬μΈν° λ³μμ μ μ₯λ κ°μ λ³κ²½νκ±°λ ν¬μΈν° λ³μκ°
κ°λ₯΄ν€λ λμμ κ° μ λ³κ²½νλ λ κ°μ§ ννλ‘ μ¬μ©ν μ μκΈ° λλ¬Έμ
λ€μκ³Ό κ°μ΄ const ν€μλλ₯Ό μ¬μ©ν μ μλ μμΉλ λ κ³³μ΄λ€.
μ΄λ κ² const ν€μλλ₯Ό μ¬μ©ν μ μλ μμΉκ° λ κ³³μ΄κΈ° λλ¬Έμ,
μ΄ μμΉλ₯Ό μ‘°ν©νλ©΄ ν¬μΈν° λ³μλ₯Ό μΈ κ°μ§ λ°©λ²μΌλ‘ μ μΈν μ μλ€.
1. int * const p;
pμμ const ν€μλλ₯Ό μ¬μ©ν κ²½μ°
pκ° κ°μ§κ³ μλ μ£Όμλ₯Ό λ³κ²½νλ©΄ λ²μν λ μ€λ₯κ° λ°μνλ€.
#include<stdio.h>
void main() {
int data = 5, temp = 0;
int* const p = &data;
*p = 3; //data = 3 κ³Ό κ°μ, μ¦ pλ³μκ° μ μ₯νκ³ μλ μ£Όμμ κ°μ 3μ λμ
.
p = &temp; //μ€λ₯ λ°μ: λ³μ pμ constμμ±μ΄ μ μ©λμ΄ pμ μ μ₯λ μ£Όμλ λ³κ²½ λΆκ°λ₯
}
2. const int *p;
pκ° μ£Όμμ μ κ·Όν λ μ¬μ©νλ ν¬κΈ°(μλ£ν) μμ const ν€μλλ₯Ό μ¬μ©νλ©΄ *pλ₯Ό μ¬μ©νμ¬
λμμ κ°μ λ³κ²½νλ©΄ λ²μν λ μ€λ₯κ° λ°μνλ€.
#include<stdio.h>
void main() {
int data = 5, temp = 0;
const int *p = &data; //λ³μ pλ dataλ³μμ μ£Όμλ₯Ό μ μ₯νλ€.
*p = 3; //μ€λ₯ λ°μ : λ³μ pκ° κ°λ₯΄ν€λ λμμ constμμ±μ΄ μ μ©λμ΄ λμμ κ° λ³κ²½μ΄ λΆκ°λ₯ νλ€. dataκ° λ³κ²½ λΆκ°.
}
3. const int * const p;
μμ κ³Ό λμμ λͺ¨λ constν€μλλ₯Ό μ¬μ©νκΈ° λλ¬Έμ pκ° κ°μ§κ³ μλ μ£Όμλ₯Ό λ°κΎΈκ±°λ,
*pλ₯Ό μ¬μ©νμ¬ λμμ κ°μ λ°κΎΈλ©΄ λ²μν λ μ€λ₯κ° λ°μνλ€.
#include<stdio.h>
void main() {
int data = 5, temp = 0;
const int *const p = &data; //λ³μ pλ dataλ³μμ μ£Όμλ₯Ό μ μ₯νλ€.
*p = 3; //μ€λ₯ λ°μ : λ³μ pκ° κ°λ₯΄ν€λ λμμ constμμ±μ΄ μ μ©λμ΄ λμμ κ° λ³κ²½μ΄ λΆκ°λ₯ νλ€. dataκ° λ³κ²½ λΆκ°.
p = &temp; //μ€λ₯ λ°μ : λ³μ pμ constμμ±μ΄ μ μ©λμ΄ p μ μ μ₯λ μ£Όμλ λ³κ²½ν μ μμ.
}
κ²°λ‘ μ μΌλ‘ μΌλ° λ³μλ₯Ό λ€λ£° λλ³΄λ€ ν¬μΈν° λ³μλ₯Ό λ€λ£° λ μ€μν νλ₯ μ΄ λ λκΈ° λλ¬Έμ,
const ν€μλλ₯Ό μ μ νκ² μ νμ©νλ©΄ μ€μλ‘ μΈν λ²κ·Έ(μλ―Έμ μ€λ₯)λ₯Ό μ€μΌ μ μλ€.