c언어 포인터 관련 질문 드립니다!

조회수 39회

윤성우의 열혈 c프로그래밍으로 c언어를 공부하다가 포인터 배열에 대해 궁금한 점이 생겨 질문드립니다.

#include <stdio.h>

int main(void)
{
    int num1 = 10, num2 = 20, num3 = 30;
    int * arr[3] = {&num1, &num2, &num3};

    printf("%d \n", *arr[0]);
    return 0;
}

포인터 배열은 포인터 변수를 요소로 가지는 배열이라고 들었는데, 위 예시에 나온 배열의 경우 요소가 &num1인 '주소값'입니다.

Q. 주소값이 포인터 변수인가요? 그렇지 않다면, 제가 언급한 포인터 배열의 정의를 좀 더 포괄적으로 이해해야 맞는건가요?

  • 포인터는 디버거로 메모리 주소를 직접 보면 제일 이해하기 좋습니다. 배열이라는 것은 같은 자료형이 쭉 한줄로 저장된 상태입니다. 포인터라는 것은 어떤 무엇인가의 시작주소이구요. 예를들어 &num1 라는 것은 변수 num1 이 저장되어 있는 주소값(메모리번지)입니다. 메모리 번지를 저장해서 무엇을 하려 하는가? 를 이해하는 것이 우선입니다. 어떤 잇점이 있을지 학습해보세요. 정영훈 2019.8.11 18:29
  • @정영훈 감사합니다!. 답변이 많이 도움됐어요 Jeon 2019.8.11 18:32

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.