728x90
반응형
2023.1.16. 최초 작성
const는 변수를 상수로 만들 때 사용한다.
변수에 기억된 값은 변할 수 있는데 필요에 따라 특정 함수 안에서는 값이 변하지 않고 처음 정한 값을 계속 기억하게 하고 싶을 때 사용한다.
아래는 예제 코드이다. 변수 선언할 때 자료형 앞이나 뒤에 사용할 수 있다.
#include <stdio.h>
void plus1(const int a, int b) {
//a = 100;
printf("%d + %d = %d\n", a, b, a + b);
}
void plus2(int* a, int* b) {
int c = 100;
a = &c;
printf("%d + %d = %d\n", *a, *b, *a + *b);
}
void plus3(int* const a, const int* b, const int* const c) {
int d = 100;
//a = &d; // 포인터 변경 불가능
//*b = 10; // 포인터가 가리키는 값 변경 불가능
//c = &d; // 포인터 변경 불가능
//*c = 10; // 포인터가 가리키는 값 변경 불가능
printf("%d + %d + %d = %d\n", *a, *b, *c, *a + *b + *c);
}
void main() {
int a = 10;
int b = 20;
int c = 30;
plus1(a, b);
plus2(&a, &b);
plus3(&a, &b, &c);
}
[실행 결과]
10 + 20 = 30
100 + 20 = 120
10 + 20 + 30 = 60
const의 위치에 따라 의미가 조금 다르다.
const int* b와 같이 자료형 앞에 붙이면 포인터가 가리키는 값이 상수화 되어 변경 불가능하다.
int* const a와 같이 자료형 뒤에 붙이면 포인터 변수가 상수화 되어 변경 불가능하다.
const int* const c와 같이 앞뒤로 const가 붙으면 둘 다 변경 불가능하다.
728x90
반응형
728x90
반응형
'프로그래밍 > C' 카테고리의 다른 글
C언어 구조체 (0) | 2023.01.17 |
---|---|
C언어 문자열 다루기 (0) | 2023.01.17 |
C언어 포인터 변수 (0) | 2023.01.16 |
2차원 배열도 1차원 배열이다. (0) | 2023.01.09 |
배열의 이름은 주소이다. (0) | 2023.01.09 |