프로그래밍/C

CONST를 이용한 상수화

swedu 2023. 1. 16. 06:15
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