존나게 흔한 비유로
손가락과 실체.
라고 함.
말 그대로 포인터는 어떠한 위치를 가리키고있는 값 이기 때문.
포인터를 사용해야 하는 이유 중 하나는
원래 값 을 변동해선 안되는 경우. 포인터로 그 위치만을 바꾸어 표현하는 것[정렬] 이 있다.
메모리의각 방은 한 바이트를 기준으로 나뉘어있고 이 방마다 주소가 부여되어 있다.
char타입은 1바이트 이기에 그 위치의 주소가 변수의 위치 지만
int타입의 경우는 4바이트를 가지는데 이럴 경우에는 가장 앞의 주소가 그 위치가 된다.
주소 값을 알아내려면 해당 변수 앞에 &를 붙이면 된다.
관련 예제 코드.
}
////////////////////////////////
출력메시지
이 코드는 주소값 에 대한 코드.
/////////////////////
이 코드는 본격적으로 포인터 변수 를 사용해본 코드.
//////////////////
출력 메시지
//////////////////////////
너무 길면 재미없으니 다음장.
손가락과 실체.
라고 함.
말 그대로 포인터는 어떠한 위치를 가리키고있는 값 이기 때문.
포인터를 사용해야 하는 이유 중 하나는
원래 값 을 변동해선 안되는 경우. 포인터로 그 위치만을 바꾸어 표현하는 것[정렬] 이 있다.
메모리의각 방은 한 바이트를 기준으로 나뉘어있고 이 방마다 주소가 부여되어 있다.
char타입은 1바이트 이기에 그 위치의 주소가 변수의 위치 지만
int타입의 경우는 4바이트를 가지는데 이럴 경우에는 가장 앞의 주소가 그 위치가 된다.
주소 값을 알아내려면 해당 변수 앞에 &를 붙이면 된다.
관련 예제 코드.
#include <iostream>
using namespace std;
int main()
{
char c = 'B';
int i = 19;
float f = 4.5f;
cout << "c의 주소 = " << (int*)&c << "\n"; //문자열 변수의 주소를 특별하게 취급하는
cout << "i의 주소 = " << &i << "\n"; //cout때문에 (int*)를 사용한 부분
cout << "f의 주소 = " << &f << "\n";
system("pause");//비쥬얼 스튜디오 2008 부터는 디버깅시에 이 문구를 사용하지 않을 시에 바로 디버깅이 종료되어버림.
return 0;
////////////////////////////////
출력메시지
이 코드는 주소값 에 대한 코드.
/////////////////////
이 코드는 본격적으로 포인터 변수 를 사용해본 코드.
//////////////////
#include <iostream>
using namespace std;
int main()
{
int a = 123;
int* p;
p = &a;
cout << "a = " << a << "\n"; // a출력
cout << "&a = " << &a << "\n"; // a의 주소값 출력
cout << "p = " << p << "\n"; // p값(a의 주소값을 가리키게 한 포인터 변수) 출력
cout << "&p = " << &p << "\n"; // p의 주소값 출력
system("pause");//비쥬얼 스튜디오 2008 부터는 디버깅시에 이 문구를 사용하지 않을 시에 바로 디버깅이 종료되어버림.
return 0;
}
/////////////////////////////출력 메시지
//////////////////////////
너무 길면 재미없으니 다음장.
'공부 > C++' 카테고리의 다른 글
무슨 타입이든 가리킬 수 있는 void 포인터 (2) | 2011.11.24 |
---|---|
포인터의 종류 (0) | 2011.11.24 |
인자를 사용한 멤버 초기화 리스트 사용 (0) | 2011.11.23 |
생성자의 초기화 리스트 사용 예제 (0) | 2011.11.23 |
뇌를 자극하는 C++ 프로그래밍 복사 생성자 Exercise 21-2 (0) | 2011.11.23 |