카테고리 없음

C언어_Const

WorkKing 2022. 3. 21. 09:54

C언어에서 포인터를 사용해야하는 곳

 

1. 함수의 출력을 원할 때

2. 함수에 대용량 데이터를 전달할 때

3. malloc

void func(int *const data1, const int *data2, const int * const data3,
		const int data4, int data5, int *data6){

	*data1 = data5;
	//data1 = &data5;

	//*data2 = data5;
	data2 = &data5;

	//*data3 = data5;
	//data3 = &data5;

	//data4 = data5;
}

int main(int argc, char ** argv){
	int a=1, b=2, c=3, d=4, e=5, f=6;
	func(&a, &b, &c, d, e, &f);
}

[결과 분석]

int *const data1 : data1에 대한 const 키워드 선언은 data1의 포인터 주소 값을 변경할 수 없다.

 

const int *data2 : (int *)data2에 대한 const 키워드 선언은 data2의 값을 변경할 수 없다.

 

const int * const data3 : data3와 (int *)data3에 대해 둘다 const 키워드를 사용할 경우, 값과 포인터 주소 값 모두 변경할 수가 없다.

 

const int data4 : 당연한 이야기이긴 하겠지만, (int) data4에 대한 const 키워드를 선언했을 시에도 data4의 값을 변경할 수가 없다.