구조체(3-3)
구조체(3-2)의 예제에서 구조체의 멤버 변수에 상수값들을 사용자에게 데이터를 받아서
대입하도록 수정해보자.
위 사진을 기반으로 해석과 이해를 해보자.
먼저,
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의 값을 출력해주는 문장이다.
'시작하지 말았어야 했던 것 > C언어 기본 문법' 카테고리의 다른 글
구조체(4) 구조체를 멤버로 가지는 구조체 (0) | 2021.02.06 |
---|---|
구조체(3-4) 구조체를 이용하여 두 점 사이의 거리를 계산해보자 (0) | 2021.02.06 |
구조체(3-2) 구조체 선언 및 구조체 변수 정의 그리고 구조체 멤버에 값 대입 및 멤버의 값 참조 (0) | 2021.02.06 |
구조체(3) 구조체 멤버 참조와 예제들 (0) | 2021.02.06 |
구조체(2) 구조체 변수를 선언하는 방법과 초기화 방법 (0) | 2021.02.06 |