프로그래밍언어/C언어[Error]
[C언어][Error] 069. assignment of read-only variable – 상수 변수에 값을 대입함
about_IT
2025. 4. 29. 00:29
728x90
이 오류는 const
로 선언된 읽기 전용 변수에 값을 다시 대입하려고 할 때 발생합니다. C언어에서 const
키워드는 변수의 값을 변경할 수 없도록 선언하며, 컴파일 타임에 이 속성이 적용되어 해당 변수에 쓰기 작업을 할 경우 컴파일 오류가 발생합니다.
이 오류는 실수로 값을 바꾸려 하거나, 함수 내부에서 const
매개변수를 변경하려 할 때 자주 발생합니다.
● 오류 예제
#include <stdio.h>
int main() {
const int x = 10;
x = 20; // 오류: const 변수에 대입 불가
return 0;
}
컴파일 시 다음과 같은 오류 메시지를 출력합니다.
error: assignment of read-only variable ‘x’
● 해결 방법
값을 변경해야 하는 경우에는 const
를 사용하지 않고 선언하거나, 변경이 필요 없는 경우라면 해당 코드를 제거해야 합니다.
#include <stdio.h>
int main() {
int x = 10; // const 제거
x = 20;
printf("%d\n", x);
return 0;
}
출력 결과:
20
● 실전 팁
const
는 읽기 전용이며, 선언된 변수에 값을 다시 할당할 수 없습니다.- 변경이 필요하다면 const를 제거하거나, 새로운 변수를 사용해야 합니다.
- 특히 함수 매개변수로 const를 사용할 때는 의도된 읽기 전용 속성을 유지하세요.
코드의 안전성과 명확성을 위해 const는 매우 유용하지만, 잘못 사용하면 불필요한 오류를 유발할 수 있습니다. const의 의미를 정확히 이해하고 변수에 알맞게 사용하는 습관이 중요합니다.
728x90