제 목 20~21강 포인터와 구조체에 관련해서 잘 이해가 안됩니다.
작성자 김문기 등록날짜 2020-08-25 21:06:46 / 조회수 : 213
강좌명 [패키지] 게임 프로그래밍 입문패키지
  • 구조체로 카드의 모양과 숫자를 선언하고 메인함수에서 그 구조체는 총 52개의 인덱스이다. 라고 초기화하는거 까지는 이해하겠는데요. 메인함수를 진행할때 포인터로 cards를 지정하는데 구조체의 이름은 tagCard고 배열은 stCards0~51인데 왜 함수에는 cards를 참조하게 되는지 이해가 안돼네요. 음 그러니까 cards라는건 선언이 안 됀 변수아닌가요? 어떻게 인식하고 작동되는지 잘 모르겠습니다. 제가 생각할때에는 stCards[52]가 참조돼서 셔플하고 프린트 돼는게 맞는거 같은데 왜 그런건가요??

  • 작성자 : 온라인게임아카데미 / 등록날짜 : 2020-08-26 11:17:18
  • 안녕하세요 온라인게임 아카데미 프로그래밍 강사 하민우 입니다.

     

    stCards 라는 변수명으로 선언 된 구조체 배열이 cards 라는 변수명으로 사용 되는 이유는 함수로 전달을 할 때 전달 되는 매개변수 명이 cards 이기 때문 입니다.

     

    간단한 예를 들어 보자면

    void function(int b)

    {

        cout << b << endl;

    }

    위와 같은 함수를 작성하고

    void main()

    {

        인트형 변수를 선언 후 위의 함수를 호출 하여 출력을 하는 코드를 작성한다면

        int a;

        function(a);

    }

    이렇게 작성 될 것 입니다.

    여기서 함수로 값을 넘길 때는 a라는 변수를 통해서 넘어가지만 해당 값을 받는 변수는 b로 선언이 되어 있기 때문에

    function 함수에서 해당 값을 사용할 때는 b로 사용 되고 있습니다.

     

    cards도 같은 경우 입니다.

    stCards 라고 선언 된 변수 값을 함수로 넘기고 해당 함수에서는 cards 라는 변수를 통해서 값을 받고 있기 때문에 cards로 사용 되고 있는 것 입니다.

     

    열공하시고 언제든지 궁금한 점이 있으시면 또 질문 하시기 바랍니다.

    꿈을 이루시는 그날까지 함께 하겠습니다.

    SGA온라인게임아카데미