작성
·
134
0
강의에서 scanf로 ptr_nc->first의 입력을 받을때 *ptr_nc의 포인터 형식으로 받아서 &를 안넣어 주었다고 하셨는데 ptr_nc->first자체가 포인터인가요? 그렇다면 ptr_nc->num도 포인터가 될수 있는것 인가요?
답변 1
0
네 직접 코드를 작성해보세요.
(아래와 같이 작성해보아도 좋습니다)
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.