C 프로그래밍 - 13주차 : 구조체

구조체

  • 사용자 정의 자료형
  • 서로 다른 자료형을 갖는 변수들을 하나로 묶어 만든 새로운 자료형

구조체 문법

  • 멤버 변수 : 구조체 안에서 정의된 변수. 일반적인 변수와 동일한 방법으로 선언
  • 사용 예시 :
struct bibim {
	int a;
	char b;
	float c;
	char d[5];
};
 
struct bibim bi;
 
bi.a = 10;
  • 멤버 변수에 접근하려면 구조체 변수 이름.멤버 변수 이름
  • 구조체 변수의 다른 선언 방법
    1. 구조체형과 변수를 별도로 선언
    2. 구조체형과 변수를 동시에 선언
    3. typedef를 이용해 선언
// 1번 방법
struct gujo {
...
};
struct gujo i;
 
// 2번 방법
struct gujo {
...
}i;
 
// 3번 방법
typedef struct _gujo{
	...
}gujo;
gujo i;
  • 구조체 변수의 초깃값 대입
struct student {
	char name[10];
	int kor;
	int eng;
	float avg;
};
 
struct student s = {"Woo", 90, 80};

구조체 배열

  • 구조체도 배열로 만들 수 있음
struct student {
	char name[10];
	int kor;
	int eng;
	float avg;
};
 
struct student s[3];
 
s[0] = {"Kim", 90, 80};
s[1] = {"Lee", 95, 85};
s[3] = {"Park", 100, 90};

구조체 포인터

  • 구조체의 주소값을 갖는 포인터를 만들 수 있음
struct student {
	char name[10];
	int kor;
	int eng;
	float avg;
};
 
struct student s;
struct student* p = &s;
p->kor = 100; // s.kor == p->kor