우리가 알고 있는 자료형에는 int나 char 같은 기본 자료형이 있습니다. 기본 자료형 이외에도 파생 자료형으로는
포인터와 배열, 열거형 그리고 오늘 배울 구조체가 있습니다.
즉 구조체는 하나의 자료형입니다. 어떤 자료형이냐고 물어보시면 구조체는 다른 자료형을 묶기 위해서 사용하는
자료형입니다. 같은 자료형을 묶는게 배열이라면 다른 자료형을 묶는건 구조체입니다.
자료형은 struct라는 키워드로 선언하며 여러개의 멤버를 가집니다. 예시로 학생을 구조체로 만들어보면
struct student {
char name[10];
int number;
double grade;
};
이런 식으로 선언할 수 있습니다. 선언하였다고 해서 변수가 선언된게 아닙니다.
지금 위의 식은 그저 틀만 만들었다고 보시면 됩니다. 변수를 선언하려면
struct student s1; 메인 함수 안에서 선언하시거나 구조체 중괄호 밖에서 변수 선언해주시면 됩니다.
struct student{
....
} s1, s2, s3; 이런식으로요, (구조체는 멤버 끝이나 중괄호 끝에도 항상 세미콜론을 붙여야 합니다.)
구조체의 초기화는 배열과 똑같습니다.
struct student s1 = {"Salmon", 1, 4.234}; 과 같이 해주시면 됩니다.
참조하실 때는 멤버 연산자라는 연산자를 사용합니다 s1.number = 2; s1.grade = 3.87; 처럼 말입니다. 단 문자열은 strcpy()이용합니다.
태그이름이 없는 구조체도 있긴 있습니다.
대신 이러한 경우에는 태그 이름이 없으니까 즉, struct (태그이름) { 멤버1; 멤버2; ... } s1, s2, s3; 선언부에서만 변수를 선언하고 그 이외에는 선언할 수 없습니다.
태그 이름이 없으니까요!
종합해보면 이런식으로 사용하시면 되겠습니다. 이외에도 구조체는 내용이 훨씬 많아서
계속 이어서 하겠습니다.
'알음알음-IT > 개발_기초_코딩_C' 카테고리의 다른 글
초급 C언어 공부 - 5.동적 메모리 할당 (0) | 2020.02.04 |
---|---|
초급 C언어 공부 - 3.포인터(1) (0) | 2020.02.04 |
초급 C언어 공부 - 2.매크로 함수 (0) | 2020.02.04 |
초급 C언어 공부 - 1.함수 (0) | 2020.02.04 |