본 포스팅은 개인적으로 공부하여 이해한 것을 바탕으로 작성되어있으므로 틀린 부분이 있을 수도 있습니다. 궁금한 점이 있다면 댓글을 남겨주세요!
먼저 구조체는 하나의 객체를 정의 할 수 있는 기능을 가지고 있습니다.
그리고 구조체를 사용하는 이유는 여러개의 변수자체가 하나의 특성으로 모아서 사용하고 싶을 때 사용합니다.
기본 구조
struct 구조체 이름 {
//해당 구조체를 정의할만한 변수들,,,
};
예제
struct Students{
char studentId[10];
char name[10];
int age;
}
int main(void){
struct Students s; // 구조체 변수 선언
strcpy(s.studentId, "20151178"); //구조체 변수에 접근
strcpy(s.name, "유재석");
s.grade = 4;
}
이렇게 구조체 변수들을 초기화 해줘도 되고 또는
int main(void){
struct Students s = {"20151178", "유재석", "4"};
}
이러한 형태로 적어주어도 됩니다.
하나의 구조체 변수만 사용하는 경우 정의와 동시에 선언을 할 수도 있습니다. 이 경우에는 변수가 전역 변수로 사용되어집니다.
형태
struct 구조체 이름{
//해당 구조체를 정의할만한 변수들...
}정의할 전역변수 이름;
이번에는 typedef키워드를 사용하는 방법을 소개해볼게요!
예를 들어 Students라는 구조체를 매번 가져올 때마다 struct Students a, struct Students b ...이런식으로 해줘야하는데
typedef를 사용하게되면!
typedef struct Students{
//해당 구조체를 정의할만한 변수들..
} test;
구조체를 가져올 때 Struct를 안쓰고 test a, test b ... 이런식으로 사용할 수 있습니다.
마지막으로 이 구조체를 포인터 변수로 사용하고 싶을 때 사용하는 방법을 소개하려고 합니다.
typedef struct Students{
char studentId[10];
char name[10];
int age;
} test;
int main(void){
test *s = malloc(sizeof(tset)); // 구조체 변수 선언
strcpy(s -> studentId, "20151178"); //구조체 변수에 접근
strcpy(s -> name, "유재석");
s -> grade = 4;
}
포인터 변수 즉 동적할당을 이용해서 포인터 변수에 접근할 때 화살표를 사용하여 해당 변수에 접근할 수 있습니다.
이상으로 이번 포스팅을 마치도록 하겠습니다. 감사합니다.
'C-language' 카테고리의 다른 글
[C언어] 배열 array (0) | 2022.07.27 |
---|---|
c++ 클래스란 무엇일까 (0) | 2021.01.24 |
c언어 전처리기란 무엇일까요? (0) | 2021.01.24 |
구조체와 파일입출력을 활용한 예제 (0) | 2021.01.23 |
파일 입출력이란?? (0) | 2021.01.23 |