반응형

구조체(3-2)

 

 

일단 student 구조체를 선언 및 구조체 변수를 정의하고,

 

구조체 멤버에 값을 대입한 후에 멤버의 값들을 다시 참조하는 예제를 봐보자

 

C로 작성된 source code 파일을 올려둘 테니 다운로드해서 사용하거나

 

사진 상으로만 확인해보자

 


 

문제풀이.c
0.00MB

 

 


 

위 사진을 가지고 해석을 하겠다.

 

먼저,

 

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)를 봐보자

반응형

+ Recent posts