[정답] 디딤돌 C언어 47. 포인터 + 정수
[정답] 47. 포인터 + 정수
◈ 기본 연습
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;
}