#구조체
쉽게 이야기 하면, "변수를 모아둔 박스"
배열과 구조체의 차이점
--> 구조체는 다른 자료형들을 하나로 묶어서 사용할 수 있다
구조체 정의 방법
1. struct 키워드 사용
struct 구조체이름
{
자료형 멤버변수이름1;
자료형 멤버변수이름2;
...
};
struct 키워드 뒤에 구조체 이름을 지정하고, 중괄호 안에 변수를 선언한다.
이때, 구조체 안에 들어있는 변수를 '멤버'라고 부른다.
* 중괄호 뒤에 세미콜론(;) 잊지 않기! *
구조체를 정의한 후에는 선언해줘야 한다.
// 선언 시 초기화
struct 구조체이름 변수이름 = { 변수값1, 변수값2, ... };
// 선언 후 값 할당
struct 구조체이름 변수이름;
변수이름.멤버변수이름1 = 변수값1;
변수이름.멤버변수이름2 = 변수값2;
...
구조체 변수는 점(.)을 이용해서 멤버에 접근한다.
예시)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
struct Person
{
char name[10];
char id[20];
int age;
};
int main(void)
{
struct Person person;
printf("이름: ");
scanf("%s", person.name); //홍길동
printf("학번: ");
scanf("%s", person.id); //201511156
printf("나이: ");
scanf("%d", &person.age); //25
printf("%s씨는 %d세 이고, 학번은 %s 입니다.", person.name, person.age, person.id);
return 0;
}
2. typedef struct 사용
typedef struct 구조체이름 {
자료형 멤버변수이름1;
자료형 멤버변수이름2;
} 구조체별칭;
구조체 변수를 선언할 때 일일히 struct 키워드를 붙이지 않기 위해 typedef로 구조체를 정의하고, 별칭을 지정해야 한다.
구조체 이름과 구조체 별칭은 같아도 되지만, 보통 구조체 이름은 "_구조체별칭"으로 사용한다.
구조체 선언은 다음과 같이 한다.
구조체별칭 변수이름 = {변수값1, 변수값2, ...};
예시)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
typedef struct _Person
{
char name[10];
char id[20];
int age;
} Person ;
int main(void)
{
Person person;
printf("이름: ");
scanf("%s", person.name); //홍길동
printf("학번: ");
scanf("%s", person.id); //201511156
printf("나이: ");
scanf("%d", &person.age); //25
printf("%s씨는 %d세 이고, 학번은 %s 입니다.", person.name, person.age, person.id);
return 0;
}
'C > 문법' 카테고리의 다른 글
[C] 함수 포인터 (0) | 2021.09.14 |
---|---|
[C] 2차원 배열 + 이중포인터 (0) | 2021.09.13 |
[C] 이중포인터 (0) | 2021.09.10 |
[C] 2차원 배열 (0) | 2021.09.10 |
[C] 기초 (0) | 2021.09.03 |