Ex22-포인터 변수를 통해 배열 요소들의 값에 접근하기

CODEDRAGON Development/C, C++

반응형

   

포인터 변수를 통해 배열 요소들의 값에 접근하기

*(p+i) == *&p[i] == p[i] 확인

*(array+i)==*&array[i]==array[i] 확인

   

   

메모리 구조도

*(p+i) == *&p[i] == p[i]

  

   

*(array+i)==*&array[i]==array[i]

  

   

   

소스코드

#include <stdio.h>

int main(void) {
        int array[3]={10, 20, 30};
        int i=0;
        int* p=NULL;

        p=array;                // p=&array[0];
포인터 변수에 배열의 시작 주소를 저장

        // *(p+i) == *&p[i] == p[i]
        for(i=0; i<3; i++){
                printf("%d %d %d \n", *(p+i), *&p[i], p[i] );
        }

        printf("----------\n");

        // *(array+i)==*&array[i]==array[i]
        for(i=0; i<3; i++){
                printf("%d %d %d \n", *(array+i), *&array[i], array[i]);
        }

        return 0;
}


 

   

출력결과