C++프로그래밍

2013.04.02_포인터&배열

성엽이 2013. 4. 2. 11:59

7_3
#include
 < stdio.h > 

int main()
{
  int i;
  int score[5];
  
  printf("%08X\n", score);  // 배열은 주소값이다.
  for( i = 0 ; i < 5 ; i++)
  {
    printf("&score[%d] : %08X\n", i, &score[i]);  // &score[0] = score 
  }
  return 0;
}





7_4 // 포인터&배열
#include
 < stdio.h >

int main()
{
  int i;
  int score[5];
  int *p;
  
  p = score;
  
  for( i = 0 ; i < 5 ; i++)
  {
    printf("&score[%d] : %08X\t  p : %08X\n", i , &score[i], p);  // 배열을 포인터변수로 받아서 주소를 받을수 있다!
    p = p + 1;
  }
  return 0;
}



7_5




Exp : 포인터상수 & 포인터변수 를 이용하여 값을 출력하였다.

      방법은 4가지로 

       1. *(p+i)

        2.  *(score+i)

         3.  score[i]

         4.        p[i]

p = score 로 거의 같다고 볼수 있지만, 포인터변수와 상수로 차이점이 있다. 포인터 변수는 다른 메모리에서도          쓰일수 있고, 값도 변경이 가능하지만, 포인터 상수는 값의 변경이 불가능하고 그 자리에서만 쓰인다.