구조체(3-2)
일단 student 구조체를 선언 및 구조체 변수를 정의하고,
구조체 멤버에 값을 대입한 후에 멤버의 값들을 다시 참조하는 예제를 봐보자
C로 작성된 source code 파일을 올려둘 테니 다운로드해서 사용하거나
사진 상으로만 확인해보자
위 사진을 가지고 해석을 하겠다.
먼저,
4 ~ 9번째 줄 : 구조체 student를 선언하고 student는 number, name, grade의 3개의 멤버로 정의된다.
아직 구조체 변수는 선언되지 않았을음 명심하자.
구조체를 함수의 외부에 선언하면 파일의 모든 함수에서 사용할 수 있다.
이는 전역 변수와 같은 의미이다.
만약 구조체를 함수의 내부에서 선언하면 해당 함수 내부에서만 사용이 가능하다.
이는 지역 변수와 같은 의미이다.
13번째 줄 : 구조체 student의 변수 s가 선언된다.
선언되는 위치가 함수 내부이므로 지역 변수가 되고
따라서 초기값은 쓰레기값이 된다.
15 ~ 17번째 줄 : 구조체 변수 s의 멤버에 값들을 대입한다.
number는 정수형이므로 정수를, name[]은 문자 배열이므로 문자열을,
grade는 double형이므로 실수를 대입한다.
문자 배열 name[]의 경우, 다음과 같은 문장은 허용되지 않는다.
name = "홍길동";
따라서 strcpy() 함수를 사용해야 하는데 헤더 파일은 string을 포함해주면 된다.
19 ~ 21 : 구조체 변수 s에 저장된 값들을 printf()를 이용해서 화면에 출력한다.
멤버 연산자 닷(.)은 구조체 변수의 멤버들을 참조할 때 쓴다.
즉, s.number은 멤버 변수 number의 값을 참조하는 의미이다.
그렇다면 당연히 s.grade는 멤버 변수 grade의 값을 참조하는 의미이다.
그리고 strcpy 함수를 이용해서 홍길동이라는 문자열을 구조체 변수 s의
멤버 변수 name에다가 복사하라는 의미이다.
다음 예제인 구조체(3-3)를 봐보자
'시작하지 말았어야 했던 것 > C언어 기본 문법' 카테고리의 다른 글
구조체(3-4) 구조체를 이용하여 두 점 사이의 거리를 계산해보자 (0) | 2021.02.06 |
---|---|
구조체(3-3) 구조체 변수의 멤버 변수에 데이터를 사용자로부터 입력받아 대입하기 (0) | 2021.02.06 |
구조체(3) 구조체 멤버 참조와 예제들 (0) | 2021.02.06 |
구조체(2) 구조체 변수를 선언하는 방법과 초기화 방법 (0) | 2021.02.06 |
구조체의 정의, 선언, 초기화, 사용방법 (0) | 2021.02.06 |