◈ 기본 연습
1. char 형식을 원소로 하는 포인터 변수 p를 선언하고 1000으로 초기화하세요.
그리고 p에 4를 더한 후에 p가 얼마인지 출력하세요.
답: 1004
char 형식의 크기는 1 바이트이므로 p+4를 하면 p에서 sizeof(char)*4를 더하므로 1004
//char 형식을 원소로 하는 포인터 변수 p를 선언하고 1000으로 초기화하세요. //그리고 p에 4를 더한 후에 p가 얼마인지 출력하세요. #include <stdio.h> int main(void) { char *p = (char *)1000; printf("%d\n", p + 4); return 0; }
2. short 형식을 원소로 하는 포인터 변수 p를 선언하고 1000으로 초기화하세요.
그리고 p에 4를 더한 후에 p가 얼마인지 출력하세요.
답: 1008
short 형식의 크기는 2 바이트이므로 p+4를 하면 p에서 sizeof(short)*4를 더하므로 1008
//short 형식을 원소로 하는 포인터 변수 p를 선언하고 1000으로 초기화하세요. //그리고 p에 4를 더한 후에 p가 얼마인지 출력하세요. #include <stdio.h> int main(void) { short *p = (short *)1000; printf("%d\n", p + 4); return 0; }
3. int 형식을 원소로 하며 원소 개수가 10인 배열 arr을 선언하세요.
int 형식을 원소로 하는 포인터 변수 p를 선언하고 arr+5로 초기화하세요.
arr과 p의 값을 출력하세요.
답: 12188244 12188264 (실행할 때마다 다릅니다. 그렇지만 두 수의 차이는 20입니다.)
//int 형식을 원소로 하며 원소 개수가 10인 배열 arr을 선언 //int 형식을 원소로 하는 포인터 변수 p를 선언하고 arr + 5로 초기화 //arr과 p의 값을 출력 #include <stdio.h> int main(void) { int arr[10]; int *p = arr + 5; printf("%d %d\n", arr, p); return 0; }