About C – “구조체, 구조체 선언, 구조체 활용”
About C – “구조체, 구조체 선언, 구조체 활용”
구조체란?
우리가 지금까지 사용했던 자료형은 정수형, 실수형, 문자형 등이 있었습니다. 구조체란 서로 다른 type의 데이터들을 하나의 단위로 취급하는 것입니다.
구조체는 이미 정의된 서로 다른 자료형들을 구성 요소로 하여 새로운 자료형을 만드는 것입니다. 묶어서 사용할 경우 프로그램을 작성하기 편리한 자료들을 한데 묶는 것으로서, 배열을 사용하며 동일한 자료형만을 관리하지만 구조체는 서로 다른 자료형들을 한 묶음으로 관리할 수 있다는 차이를 가집니다.
구조체의 선언
구조체의 선언 방법은 다음과 같습니다.
struct 구조체_태그명 {
자료형 멤버명;
자료형 멤버명;
//등등..
};
예를 들면, 강아지 구조체를 선언해 봅시다.
struct Dog{
char name[10];
int age;
double weight;
};
위의 코드로 struct Dog형을 선언했습니다.
구조체의 선언은 구조체의 틀을 컴파일러에게 알려주는 것으로, 실제 사용하는 것은 틀로부터 만들어진 변수들입니다. 그렇다면 그 변수들은 어떻게 만들까요?
구조체 변수
첫 번째 방법은, 구조체 선언과 동시에 변수를 선언하는 것입니다.
struct Dog{
char name[10];
int age;
double weight;
} max, guppy;
“}”와 마지막 세미콜론 사이에 변수명을 쓰면 됩니다.
두 번째 방법은 변수를 따로 선언하는 것입니다.
struct Dog{
char name[10];
int age;
double weight;
};
struct Dog max,guppy;
struct Dog
이 자료형, minsu
와 minjung
이 변수명입니다.
구조체 멤버의 참조와 연산
구조체 변수가 자신의 멤버에 접근하기 위해서는 “.”이나 “->” 연산자를 사용합니다. 일반 구조체 변수의 멤버 접근은 “.”으로, 구조체 포인터 변수의 멤버 접근은 “->” 으로 한다고 생각하시면 되겠습니다.
#include <stdio.h>
struct Dog {
char name[10];
int age;
double weight;
};
int main()
{
struct Dog Max, Guppy, Tammy;
Max.age = 1;
Guppy.weight = 13.0;
Tammy.weight = 9.1;
printf("%d %f %f \n", Max.age,Guppy.weight, Tammy.weight);
}
위의 코드는 구조체를 선언하고 변수를 만들어서 멤버에 접근하는 예제입니다.
제가 이해한 구조체 관련 정리입니다.