본문 바로가기

공부/C++

흔하디 흔한 포인터의 개념 -1

존나게 흔한 비유로

손가락과 실체.

라고 함.

말 그대로 포인터는 어떠한 위치를 가리키고있는 값 이기 때문.


포인터를 사용해야 하는 이유 중 하나는

원래 값 을 변동해선 안되는 경우. 포인터로 그 위치만을 바꾸어 표현하는 것[정렬] 이 있다.
 

메모리의각 방은 한 바이트를 기준으로 나뉘어있고 이 방마다 주소가 부여되어 있다.

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;

}
 /////////////////////////////

출력 메시지



////////////////////////// 



너무 길면 재미없으니 다음장.