프로그래밍과 잡담

[C언어] 기초 5 본문

프로그래밍/C,C++, Win32Api

[C언어] 기초 5

크레온 2009. 3. 11. 17:00
포인터

포인터..  C나 C++ 언어에는 포인터라는 걸 쓴다..

자바나 C#은 포인터를 쓰지 않는다.. 물론 내부적으로는 포인터를 쓰겠지만

프로그래머 입장에서는 못쓴다..

포인터란.. 주소값을 갖는 변수를 의미한다...


쓰는 방법은 쉽다..

int *pointer;

변수명 앞에 * 곱하기 기호를 붙이면 포인터가 되는거다..

쓰는 법도 여러가지다 .

int* pointer;
int * pointer;
int *pointer;

이렇게 3가지 인데.

가운데꺼는 잘 안쓰고 위 나 아래껄 주로 쓴다.

그리고 포인터 변수의 크기는 모두 4byte의 크기를 가진다..

double 이던 뭐던 간에 말이다..

정의는 이거다..

C언어 배우면 사람들이 포인터가 어렵다고하는데... 너무 어렵게 생각하지말고
주소 값을 갖는 변수라 생각을 하면 된다.


예제:

int p = 1;

int *pt;

pt = &p;


자, 위에 보면 int p =1 이라고 변수 선언과 동시에 값을 넣었다..

그리고 pt라는 int형 포인터 변수를 선언했다.

그리고  pt에다가 p의 주소값을 주었다..

&이게 주소값 연산자라는걸 전에 했다.

모르겠으면 그림을 그리면서 하면 된다.


프로그래밍을 하면 그림은 중요하다. 못그려도 상관없다.
그냥 알아 볼 수만 있으면 된다.





선언을 했을때에 메모리 상에 올라간 모습을 그린거다.
실제로 0x0001은 아니다 그냥 쓰기편하기 위해서 그린 만든거다


그리고 그다음

pt = &p;





포인터는 주소값을 가르키는 변수이다.
pt가 p의 주소값을 가르키는 모습을 써 놓은거다.

그림은 이런식이지만

실제적으로는 pt의 주소값을 찍어보면

0x0001이라는 주소값이 나온다..

주소값을 찍어보는 방법은

printf 함수를 이용하면 되는데..

printf("%x \n",&p);
printf("%x \n",pt);

저런식으로 하면  변수가 가지고 있는 주소값을 콘솔 창에 띄워 준다..

\n은 한줄 띄우라는 거다..

자, 보면 pt는 &(reference)를 안썼는데 이유는?

밑에꺼 클릭하면 나온다.



끝.. 다음은 포인터 연산..
반응형

'프로그래밍 > C,C++, Win32Api' 카테고리의 다른 글

[C언어] 기초 5-2  (0) 2009.03.11
[C언어] 기초 5-1  (0) 2009.03.11
[C언어] 기초 4  (0) 2009.03.11
[C언어] 기초 3  (0) 2009.03.11
[C언어] 기초 2-1  (0) 2009.03.11
Comments