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; } }