• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

(14.8)강의 4:15부분 질문

22.08.25 00:32 작성 조회수 100

0

제목 없음.png제목 없음.png

강의에서 scanf로 ptr_nc->first의 입력을 받을때 *ptr_nc의 포인터 형식으로 받아서 &를 안넣어 주었다고 하셨는데 ptr_nc->first자체가 포인터인가요? 그렇다면 ptr_nc->num도 포인터가 될수 있는것 인가요?

답변 1

답변을 작성해보세요.

0

강민철님의 프로필

강민철

2022.08.25

네 직접 코드를 작성해보세요.

(아래와 같이 작성해보아도 좋습니다)

  1 #include <stdio.h>
  2
  3 #define NLEN 30
  4
  5 struct name_count {
  6     char first[NLEN];
  7     char last[NLEN];
  8     int num;
  9 };
 10
 11 int main()
 12 {
 13     struct name_count * ptr_nc;
 14
 15     scanf("%d\n", ptr_nc->num);
 16
 17     return 0;
 18 }

이를 돌린 결과는 아래와 같은데

이를 통해 ptr_nc->num의 형을 알 수 있습니다.

참고로 컴파일러에 따라 출력 결과는 다를 수 있습니다.

이 예시에서는 gcc로 컴파일했습니다.

test.c:15:19: warning: format specifies type 'int *' but the argument has type 'int' [-Wformat]
    scanf("%d\n", ptr_nc->num);
           ~~     ^~~~~~~~~~~
1 warning generated.