구조체(structure)는 한 가지 이상의 변수를 묶어서 새로운 자료형을 정의하는 도구다.
흔히 쓰는 int, double, char 말고 자기가 직접 커스텀한 자료형이라고 볼 수 있다.
구조체를 선언하는 방법은 다음과 같다.
// 구조체 선언
struct 자료형이름{
...
};
int main(){
// 구조체 변수 선언
struct 자료형이름 변수명;
}
#include <stdio.h>
#include <string.h>
struct student{
char * name;
int age;
double weight;
};
int main(){
// 구조체 변수 선언 1
struct student student1;
strcpy(student1.name, "김철수");
student1.age = 15;
student1.weight = 64.2;
// 구조체 변수 선언 2 (선언 및 초기화)
struct student student2 = {"박영수", 14, 65.3};
printf("학생1 이름 : %s, 나이 : %d, 몸무게 : %f\n", student1.name, student1.age, student1.weight);
printf("학생2 이름 : %s, 나이 : %d, 몸무게 : %f\n", student2.name, student2.age, student2.weight);
return 0;
}
/*
출력
학생1 이름 : 김철수, 나이 : 15, 몸무게 : 64.200000
학생2 이름 : 박영수, 나이 : 14, 몸무게 : 65.300000
*/
유형 1과 같이
변수를 선언한 후, "."을 사용해 구조체 맴버 값에 접근하여 값을 변경할 수 있고,
유형 2와 같이 "{}"를 이용해 선언과 동시에 값을 바로 초기화하는 방법도 있다.
[C언어] 자료형 이름 원하는대로 정의하기 (typedef) (0) | 2022.06.02 |
---|---|
[C언어] 문자열을 숫자로 바꾸기 - 2 (strtol, strtoul, strtod) (0) | 2022.05.31 |
[C언어] 문자를 기준으로 문자열 자르기 (strtok, strpbrk) (0) | 2022.05.29 |
[C언어] 문자열을 숫자로 바꾸기 - 1 (atoi, atof, atol) (0) | 2022.05.28 |
[C언어] 문자열에서 한글만 추출하기 (0) | 2021.11.08 |