다 좋은데 문제는
가리킬 수만 있고. 뭘 할수는 없음.
void포인터는 모든 타입을 가리킬 수 있지만 해당 변수가 어떤 타입인지는 저장하지 않기때문에
주소를 저장하는 용도로만 사용된다.[솔직히 말해서 이걸 왜 쓰는지는 모르겠다.]
이 포인터를 사용하려면 타입이 있는 포인터로 형변환을 시킨 후에 사용해야만 한다.
뭔소린지 잘 모르겠으니 예제 코드를 작성하자.
////////////////
//출력화면
위의 코드에서는 주소를 저장하는 용도로만 사용했기 때문에[값을 바꾸려하지 않았음] pv를 출력해도 에러가 나지 않는다.
이 방법은 해당 위치의 값이 int값이 들어있다 는 것을 알고나서 형변환을 한 예 이다.
만약 해당 값이 int형으로 들어있는게 아니라면 오류가 난다.
가리킬 수만 있고. 뭘 할수는 없음.
void포인터는 모든 타입을 가리킬 수 있지만 해당 변수가 어떤 타입인지는 저장하지 않기때문에
주소를 저장하는 용도로만 사용된다.[솔직히 말해서 이걸 왜 쓰는지는 모르겠다.]
이 포인터를 사용하려면 타입이 있는 포인터로 형변환을 시킨 후에 사용해야만 한다.
뭔소린지 잘 모르겠으니 예제 코드를 작성하자.
#include <iostream>
using namespace std;
int main()
{
int i = 300;
void* pv = &i;
int* pi = (int*)pv;
cout << "i = " << i << "\n"; // i값
cout << "pi = " << pi << "\n"; // i의 주소값을 int형 포인터로 바꾼 뒤 주소값을 출력
cout << "pv = " << pv << "\n"; // i의 주소값을 나타내는 보이드형의 포인터 pv. 출력.
system("pause");
return 0;
}
////////////////
//출력화면
위의 코드에서는 주소를 저장하는 용도로만 사용했기 때문에[값을 바꾸려하지 않았음] pv를 출력해도 에러가 나지 않는다.
이 방법은 해당 위치의 값이 int값이 들어있다 는 것을 알고나서 형변환을 한 예 이다.
만약 해당 값이 int형으로 들어있는게 아니라면 오류가 난다.
'공부 > C++' 카테고리의 다른 글
포인터 동작의 이해. (0) | 2011.11.24 |
---|---|
주소를 사용하여 정보에 접근하기[포인터를 사용해서 포인터가 가리키는 값을 바꾸는 방법] (0) | 2011.11.24 |
포인터의 종류 (0) | 2011.11.24 |
흔하디 흔한 포인터의 개념 -1 (0) | 2011.11.24 |
인자를 사용한 멤버 초기화 리스트 사용 (0) | 2011.11.23 |