C구조체와 문자열

구조체 기본

여러 필드를 하나의 사용자 정의 타입으로 묶는 C `struct` 기본 패턴을 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

c
struct Student {
    char name[20];
    int score;
};

설명

  • 구조체는 서로 관련된 여러 값을 하나의 레코드처럼 묶고 싶을 때 사용합니다.
  • 필드는 점 연산자 .로 접근하고, 포인터가 가리키는 구조체는 ->로 접근합니다.
  • 배열과 구조체를 조합하면 학생 목록, 좌표 목록 같은 자료구조를 자연스럽게 표현할 수 있습니다.
  • typedef를 함께 쓰면 구조체 이름을 더 간결하게 다룰 수 있습니다.

짧은 예제

c
#include <stdio.h>

typedef struct {
    char name[20];
    int score;
} Student;

int main(void) {
    Student first = {"Mina", 95};
    printf("%s %d\n", first.name, first.score);
    return 0;
}

빠른 정리

항목설명
struct사용자 정의 레코드 타입
.일반 구조체 변수의 필드 접근
->구조체 포인터의 필드 접근
typedef타입 이름을 짧게 별칭 지정
배열 + 구조체표 형태 데이터를 표현하기 좋음

주의할 점

구조체 대입은 가능하지만, 구조체 안에 포인터가 있을 때는 얕은 복사가 일어난다는 점을 따로 생각해야 합니다.