본문 바로가기
프로그래밍언어/C언어[초급]

[C언어][초급] Chapter55. 구조체의 선언과 사용 – 여러 데이터를 하나로 묶는 방법

by about_IT 2025. 4. 19.
728x90

C언어에서는 다양한 자료형을 하나로 묶어서 다룰 수 있는 구조체(struct)라는 개념이 있습니다.
구조체를 사용하면 이름, 나이, 성적 등 여러 정보를 하나의 단위로 저장할 수 있습니다.


● 구조체 선언

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

이렇게 하면 이름, 나이, 점수를 함께 저장할 수 있는 자료형이 만들어집니다.


● 구조체 변수 선언

struct Student s1;

이제 s1이라는 학생 정보를 저장할 수 있는 구조체 변수가 생성됩니다.


● 구조체 초기화와 접근

struct Student s1 = {"홍길동", 20, 95.5};

printf("이름: %s\n", s1.name);
printf("나이: %d\n", s1.age);
printf("점수: %.1f\n", s1.score);

점(.) 연산자를 사용해 구조체 안의 각 멤버에 접근합니다.


● 구조체에 입력값 저장

scanf("%s %d %f", s1.name, &s1.age, &s1.score);

scanf를 이용하면 구조체 멤버에 입력값을 저장할 수 있습니다.


● 요약

  • 구조체는 서로 다른 타입을 하나로 묶을 수 있다
  • struct 키워드를 이용해 선언
  • 변수.멤버 형태로 접근

구조체는 실제 프로그램에서 자주 사용되는 중요한 문법입니다.
학생, 상품, 좌표, 직원 등 다양한 정보를 효율적으로 다루기 위해 반드시 익혀야 합니다.


● 실습 문제

문제 1

이름, 나이, 키를 저장할 수 있는 구조체 Person을 정의하세요.

 

문제 2

Person 구조체를 사용해 사람 한 명의 정보를 초기화하고 출력하세요.

 

문제 3

Student 구조체에 성적(score)을 추가로 넣고 출력하는 코드를 작성하세요.

 

문제 4

구조체 변수 s1의 나이를 30으로 바꾸는 코드를 작성하세요.

 

문제 5

구조체의 장점을 간단히 서술하세요.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

▶ 정답 확인하기

정답 1

struct Person {
    char name[20];
    int age;
    float height;
};

 

정답 2

struct Person p1 = {"김민수", 25, 178.2};
printf("%s %d %.1f\n", p1.name, p1.age, p1.height);

 

정답 3

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

struct Student s1 = {"유재석", 22, 92.3};
printf("%s %d %.1f\n", s1.name, s1.age, s1.score);

 

정답 4

s1.age = 30;

 

정답 5

구조체는 여러 데이터를 하나로 묶어 효율적으로 관리할 수 있게 해줍니다.

728x90