728x90
반응형
# include <stdio.h>

int main()
{
	const double PI1 = 3.141592; 
	double const PI2 = 3.141592; 
	//const는 자료형 앞이나 뒤에 위치 가능하다. 둘 다 가능하다.
	//const는 변수는 상수로 바꾸는 함수.
	//사용하는 용도는 PI와 같이 값이 정해져있고 변할 경우 계산값이 모두 바뀌는 경우
	
	int const arr[5] ={1,2,3,4,5};
	//arr[2] = 1234; 
	//배열에 const를 붙여도 값을 바꿀수 없다.
	
	double const arr2[3] = {1.0,2.0,3.0};
	
	double *pd = arr2;
	*pd = 3.0; // pd[0] = 3.0; arr[0] = 3.0;
	pd[2] = 1024.0; // arr[2] = 1024.0;
	printf("%lf %lf\n",pd[2],arr2[2]); 	
	// const로 선언한 배열도 포인터 변수를 이용해 값을 변경할 수 있다.
	// 하지만 상수 자체의 의도에 부합하지 않으므로 사용하지 말자. 
	
	//하지만 증감연산자는 사용 가능하다.
	pd++;
	printf("%lf %lf\n",pd[2],arr2[2]); 
	
	//증감 연산을 사용하면 arr2[2]+1을 출력한다. 하지만 arr2[2] 가 최대값. arr2[3]은 존재하지 않는다.
	 
	
	const double*  pd2 // 포인터 변수가 가리키고 있는 값을 못바꾼다. 
	double* const pd2 // 포인터 변수의 주소값을 못바꾼다. 
	const double* const pd2 = arr2; // 증감 연산도 사용하게 하고 싶지 않다면 앞 뒤에 const 전부 사용  
}

 

 

[그림1] const 배열과 포인터

 

 

출처 : 인프런 - 홍정모의 따라하며 배우는 C언어

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기