Const

수업/C 2009/03/26 23:19
const [var] : 무엇이든 상수화 시켜준다.

int ar[5]={1,2,3,4,5};

 

const int *ptr=&ar[0]; //int를 고정(값 변경 불가 주소 변경 가능)
pi2++;                // 포인터가 다른 대상체를 가리킬 수 있다.
*pi2=0;               // 에러 : 대상체가 상수이므로 값을 변경할 수 없다.
 
int * const ptr=&ar[0];//ptr(포인터)를 고정(값 변경 가능. 주소 변경 불가)
pi3++;                // 에러 : 포인터가 다른 대상체를 가리킬 수 없다.
*pi3=0;               // 대상체의 값을 변경할 수 있다.
 
const int * const ptr=&ar[0];//int와 ptr을 고정(값 변경 불가 주소 변경 불가)
pi4++;                // 에러 : 포인터가 다른 대상체를 가리킬 수 없다.
*pi4=0;               // 에러 : 대상체가 상수이므로 변경할 수 없다.

 

 

1. const는 자신의 오른쪽 것에 적용된다.

2. 오른쪽에 적용대상이 없으면 왼쪽에 적용한다.

 

여기서 말하는 적용대상이란 * 또는 type(자료형)