7. 포인터, 배열, 참조
조
7.2 포인터
7.2.1 void*
// void* 대입이 가능한 경우
int a = 10;
double b = 5.5;
void* ptr1 = &a; // int* -> void* 변환
void* ptr2 = &b; // double* -> void* 변환
// void* 대입이 불가능한 경우
// case 1 (함수 포인터)
void myFunction(int x) {
// ...
}
void (*funcPtr)(int) = myFunction; // 함수 포인터
void* ptr = funcPtr; // 오류! 함수 포인터는 void*로 변환될 수 없음
// case 2 (멤버 포인터)
class MyClass {
public:
int member;
void memberFunction() {
// ...
}
};
int MyClass::*memberPtr = &MyClass::member; // 데이터 멤버 포인터
void (MyClass::*funcPtr)() = &MyClass::memberFunction; // 멤버 함수 포인터
void* ptr1 = memberPtr; // 오류! 데이터 멤버 포인터는 void*로 변환될 수 없음
void* ptr2 = funcPtr; // 오류! 멤버 함수 포인터는 void*로 변환될 수 없음7.2.2 nullptr
7.3 배열
7.3.1 배열 초기화
7.3.2 문자열 리터럴
7.4 배열을 가리키는 포인터
7.4.1 배열 탐색
7.5 포인터와 const
7.7 참조자
7.7.1 lvalue 참조자
7.7.2 rvalue 참조자
Last updated