본문 바로가기
C_프로그래밍

[C 프로그래밍] 39장. 구조체

by 팔공산호랑이 2020. 4. 6.

------------------------------------------------------------

------------------------------------------------------------

 

구조체는

사용자가

새로운 자료형을 정의하는 것이라고 할 수 있습니다.

------------------------------------------------------------

 

구조체를 정의할때는

struct 키워드를 사용하는데

이것은

structure줄인것입니다.

structure는 구조라는 뜻입니다.

------------------------------------------------------------

예제 코드를 보면

3번째 줄에서

7번째 줄까지

구조체를 정의하고 있습니다.

struct point라는

새로운 자료형을 정의하고

그 안에 가지는 값은

X변수와 Y변수입니다.

------------------------------------------------------------

 

11번째 줄에서는

구조체 변수를 선언하고 있습니다.

이것은

point 구조체 변수 p를 선언한다 라고 해도 되지만

struct point가 새로운 자료형이므로

------------------------------------------------------------

struct point 타입의 변수 p를 선언한다. 라고 하면 이해가 쉽습니다.

왜냐하면

구조체는 사용자가 자료형을 새로 정의한것이고

struct point라는것은

사용자가 정의한 새로운 자료형이기 때문입니다.

------------------------------------------------------------

결국

int num;

의 구조와 다르지 않습니다.

struct point 타입의 변수 p

int 타입의 변수 num

struct point

기존 제공되는 int자료형과는 달리

사용자가 새로 정의한 자료형이라는 것입니다.

------------------------------------------------------------

13번째

14번째 줄에서는

구조체 변수 px1을 대입하고 있습니다.

구조체 변수 py2를 대입하고 있습니다.

구조체 변수 p

멤버로 xy 가지므로

이렇게 . 연산자를 사용해서 어느 요소에 값을 넣을지 지정해주어야 합니다.

------------------------------------------------------------

 

구조체 변수 p

다음과 같은 형태로

두 가지 변수 xy 가집니다.

------------------------------------------------------------

실행결과는 다음과 같습니다.

------------------------------------------------------------

다른 예제 코드가 있습니다.

아까와 다른 점은

11번째 줄에서

구조체 변수를 선언과 동시에 초기화 했다는 것입니다.

------------------------------------------------------------

실행결과는 다음과 같습니다.

------------------------------------------------------------

또 다른 예제코드가 있습니다.

이 코드도 역시

3번째 줄에서

7번째 줄 까지

새로운 자료형

struct person을 정의했습니다.

사람의 정보를 가지는 자료형 입니다.

------------------------------------------------------------

또 다른 예제코드가 있습니다.

이 코드도 역시

11번째 줄에서

구조체 변수를 선언과 동시에 초기화 하고 있습니다.

그림으로 나타내면 변수 p

문자열을 저장할 수 있는 char형 배열 name

정수를 저장할 수 있는 age변수가 있습니다.

그리고 그 값을 문자열 박보검

정수 20으로 초기화 해주었습니다.

그리고 13번째 14번째 줄에서

구조체 변수의 값들을 출력해주고 있습니다.

------------------------------------------------------------

실행결과는 다음과 같습니다.

------------------------------------------------------------