minseo-jung / study-c

0 stars 0 forks source link

포인터에 관한 간단한 고찰 #34

Open minseo-jung opened 5 years ago

minseo-jung commented 5 years ago
#include <stdio.h>

void practice()
{
    int arr[3] = { 0,1,2 };
    int *ptr = arr; 

    printf("%d",ptr);
    printf("%d", *ptr);
    return;
}

*ptr을 선언할 경우 배열에 상관없이 무조건 배열의 첫번째 요소를 긁어오는건가요.배열을 선언하지 않으면 무조건 첫번째 요소인건가요?

wonny25 commented 5 years ago

배열 변수의 메모리 값을 찍어보면 arr[0]의 주소가 나와. 그래서 배열의 첫번째 요소를 가리키게 되는거지. 메모리 주소값을 확인해보려면 아래처럼 %p를 format string으로 넣으면 돼

printf("%p", arr);
printf("%p", arr[0]);
printf("%p", arr[1]);
printf("%p", arr[2]);