[정답] 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;
}