1. 포인터 변수 사용 [Bottom] [Top]
const char cch = 'A'; char ch = 'B'; //------------------------------------------------------------------------------ const char * pch1 = &cch; char * pch2 = &cch; // 에러발생 char * const pch3 = &cch; // 에러발생 const char * const pch4 = &cch; const char * pch5 = &ch; char * pch6 = &ch; char * const pch7 = &ch; const char * const pch8 = &ch; //------------------------------------------------------------------------------ *pch1 = 'A'; // 에러발생: object declared const pch1 = &ch; // 성공: pointer not declared const *pch2 = 'A'; // 성공: normal pointer pch2 = &ch; // 성공: normal pointer *pch3 = 'A'; // 성공: object not declared const pch3 = &ch; // 에러발생: pointer declared const *pch4 = 'A'; // 에러발생: object declared const pch4 = &ch; // 에러발생: pointer declared const
데이터형 선언
초기화
값 대입
주소 대입
char *
O
O
O
const
char *
O
X
O
char *
const
O
O
X
const
char *
const
O
X
X
2. 참조 변수 사용 [Bottom] [Top]
// 함수 원형 선언 void Test0( int & a ); void Test1( const int & b ); void Test2( const int & const c ); // Warning C4227: int & const 참조 무시 void Test3( int & const d ); // Warning C4227: int & const 참조 무시 // main() 함수 구현 int main() { int data = 100; Test0( data ); Test1( data ); Test2( data ); Test3( data ); return 0; } // 함수 구현 void Test0( int & a ) { a = 0; } void Test1( const int & b ) { b = 10; } // 에러발생: object declared const void Test2( const int & const c ) { c = 20; } // 에러발생: object declared const void Test3( int & const d ) { d = 30; }
데이터형 선언
초기화
값 대입
비고
int &
O
O
const
int &
O
X
int &
const
O
O
int & const 참조 무시
const
int &
const
O
X
int & const 참조 무시
