IT_Programming/C · C++

포인터 선언과 연산 테스트

JJun ™ 2007. 1. 24. 19:27
 

#include <stdio.h>

 

int main()
{
   int nInt = 10;
   int* pInt;     // int형 포인터 선언

   

   /* nInt값과 변수들의 주소 출력 */
   printf("nInt = %d\n",nInt);
   printf("&nInt : %p\n", &nInt);
   printf("&pInt : %p\n", &pInt);

   

   /* 포인터 변수 pInt에 nInt의 주소를 대입(초기화) */
   pInt = &nInt;
   printf("pInt : %p\n", pInt);

  

   /* 포인터 변수 pInt를 이용한 nInt값 출력 */
   printf("*pInt = nInt = %d\n", *pInt);

  

   /* 포인터 변수 pInt를 이용한 nInt값 변경 */
   *pInt = 15;
   printf("*pInt = nInt = %d\n", *pInt);

  

   return 0;
}

 

--------------------------------------------------------------

 

[실행결과]

 

nInt = 10

&nInt : 1A02

&pInt : 1A00

pInt : 1A02

*pInt = nInt = 10

*pInt = nInt = 15

 

==============================================================

 

 

#include <stdio.h>

 

void main()
{
   int nInt;
   int* pInt;

 

   /* 변수들의 주소 출력 */
   printf("&nInt : %p\n", &nInt);
          
  
/* 포인터 변수 pInt에 nInt의 주소를 대입 */
   pInt = &nInt;
   printf("pInt : %p\n", pInt);

   

   /* pInt에 1증가 */
   printf("++pInt : %p\n", ++pInt);

   

   /* pInt에 2증가 */
   printf("pInt+2 : %p\n", pInt+2);
}

 

--------------------------------------------------------------

 

[실행 결과]

 

&nInt : 19E0

pInt : 19E0

++pInt : 19E2     // int형의 크기인 2만큼 증가.

pInt+2 : 19E6     // int형의 크기인 2(+2)만큼 증가.

 

==============================================================

POINTER2.CPP
0.0MB
pointer1.cpp
0.0MB