반응형

구조체(3-3)

 

 

구조체(3-2)의 예제에서 구조체의 멤버 변수에 상수값들을 사용자에게 데이터를 받아서

 

대입하도록 수정해보자.

 


 

문제풀이.c
0.00MB

 

 

 

 


 

 

위 사진을 기반으로 해석과 이해를 해보자.

 

먼저,

 

4 ~ 9번째 줄 : 이전 예제인 구조체(3-1)에서처럼 student라는 이름을 가진

 

구조체를 선언하면서 정의해주는데, 똑같이 멤버 변수로는 

 

int형 number, char형 문자 배열 name, double형 grade 가 선언되었다.

 

그리고 이 예제 또한 구조체는 전역 변수처럼 소스 파일 내에서 어디서든 호출할 수 있도록

 

함수 외부에 정의되었으며, 아직 구조체 변수는 선언되지 않았다.

 


 

 

13번째 줄 : student라는 이름을 가진 구조체의 변수가 선언되었다.

 

구조체 변수의 이름은 s이다.

 


 

 

15 ~ 16번째 줄 : 사용자에게 학번을 입력받는데 이때 데이터 값을 

 

구조체 변수 s의 멤버 변수인 number에다가 저장한다.

 

그리고 &s.number 와 &(s.number) 이 두개 표기법은 서로 같은 의미라는 것을 알아두자.

 


 

 

18 ~ 19번째 줄 : 사용자에게 이름을 입력받는데 이 때 데이터 값을

 

구조체 변수 s의 멤버 변수이자 문자 배열인 name에다가 저장받는데

 

name은 배열의 이름이므로 이미 배열을 가리키는 포인터이다.

 

추가 설명하자면 포인터에서 우리는 배열의 이름이 

 

그 배열 자체의 시작을 알리는 주소를 가리키는 포인터라고 배웠다.

 

따라서 앞에 주소를 가리키는 &연산자를 붙이지 않는다.

 

만약 붙이려면 &(s.name[0])와 같이 표기해줘야 한다.

 


 

21 ~ 22번째 줄 : 사용자에게 학점을 입력받는데 이때 데이터 값을 

 

구조체 변수 s의 멤버 변수인 grade에 저장한다.

 


 

24 ~ 26번째 줄 : 각각 구조체 변수 s의 멤버변수인

 

number, name, grade의 값을 출력해주는 문장이다.

 

반응형

+ Recent posts