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
'프로그래밍언어 > C언어[초급]' 카테고리의 다른 글
[C언어][초급] Chapter57. 구조체 배열 – 여러 개의 구조체를 한 번에 관리하는 방법 (0) | 2025.04.19 |
---|---|
[C언어][초급] Chapter56. 구조체 멤버 접근 – 점(.)과 화살표(→) 연산자 차이 알기 (0) | 2025.04.19 |
[C언어][초급] Chapter54. 포인터를 이용한 함수 호출 – (call by value, call by reference) (0) | 2025.04.19 |
[C언어][초급] Chapter53. 포인터와 문자열 – 문자열을 더 유연하게 다루는 방법 (0) | 2025.04.19 |
[C언어][초급] Chapter52. 포인터와 배열 – 배열의 시작 주소와 포인터의 관계 (0) | 2025.04.19 |