TIL C언어 구조체

Baedonguri·2022년 5월 1일
0
post-thumbnail

우리가 C언어에서 자주 사용하는 배열은 같은 형태의 자료형을 묶어
반복문으로 사용할 수 있는 훌륭한 자료형이다.
하지만 배열을 사용하려면 모든 데이터의 형태가 같아야한다.

예를 들면, 학생의 학번(315), 이름(홍길동), 학점(4.0)처럼
다른 자료형을 하나의 배열로 선언해 처리하는 것은 불가능하다.

하지만 구조체(struct)를 사용하면 여러 형태의 데이터들을
한번에 묶어 단일 자료형으로 다룰 수 있게 된다.
맛만 다른 다양한 쿠키를 굽기 위한 쿠키틀을 만든다고 생각하면 편하다.

1. 구조체 선언과 멤버 사용

구조체는 하나의 자료형으로 변수 선언이 가능하지만
구조체의 형태를 컴파일러에 미리 알려주는 구조체 선언을 해야한다.
선언을 하고 나서야 새로운 자료형이 만들어지고, 구조체의 변수를
사용할 수 있게 된다.

#include <stdio.h>
#define MAXNAME 100

struct Patient {
	// 멤버
    char name[MAXNAME]; //char형 멤버
    float height; 		// float형 멤버
    float weight;		// float형 멤버
    int age;			// int형 멤버
};


int main(){
    struct Patient p1, p2, p3;

    return 0;
}

struct 예약어를 사용하여 구조체를 선언한 모습이다.
구조체 안에 들어가는 변수들은 member라고 부른다.

다음과 같은 형태로도 사용이 가능하다.
이를 익명의 구조체라고 한다.

typedef struct{
	// 멤버
    char name[MAXNAME]; //char형 멤버
    float height; 		// float형 멤버
    float weight;		// float형 멤버
    int age;			// int형 멤버
}Patient;

dot(.) 오퍼레이터는 멤버에 접근하기 위해 사용한다.

strcpy(p1.name, "홍길동"); // p1 구조체의 name변수에 '홍길동'을 복사
profile
Software Engineer

1개의 댓글

👍

답글 달기