더북(TheBook)

pointer11.c

#include <stdio.h>
 
main()
{
    int a[5] = { 1, 2, 3, 4, 5 };
    int *b;
 
    b = a; // 배열 a의 첫 번째 항목의 주소 값을 포인터 변수 b에 저장
 
    printf("a[0]의     주소는 %d\n", &a[0]);
    printf("포인터 b+0의 값은 %d\n", b);
    
    b = b + 1;
    printf("a[1]의     주소는 %d\n", &a[1]);
    printf("포인터 b+1의 값은 %d\n, b);
    b = b + 1; // 포인터 주소 값 연산, +1은 1 증가가 아니라 배열 한 칸 바이트 크기를 의미
    printf("a[2]의     주소는 %d\n", &a[2]);
    printf("포인터 b+2의 값은 %d\n", b);
    
    b = b + 1; // 포인터 주소 값 연산
    printf("a[3]의     주소는 %d\n", &a[3]);
    printf("포인터 b+3의 값은 %d\n", b);
    
    b = b + 1;
    printf("a[4]의     주소는 %d\n", &a[4]);
    printf("포인터 b+4의 값은 %d\n", b);
 
    // 위에 코드를 for 문을 사용하여 최적화 하기 
    printf("\n");
    b = a; // 배열a의 첫번째 항목의 주소 값을 포인터 변수 b에 다시 초기화
 
    for (i = 0; i < 5; i++) {
        printf("a[%d]의     주소는 %d\n", i, &a[i]);
        printf("포인터 b+%d의 값은 %d\n", i, b);
        b = b + 1;
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.