데이터를 그룹화 하는 구조체
int age1, age2, age3, age4;
float height1, height2, height3, height4;
1. 배열로 나타내기
int age[4];
for(i=0; i<4; i++) scanf("%d", age+i);
이와같이 반복문을 사용하여 더 효율적으로 사용 가능함
배열의 한계 : 크기가 같은 데이터만 그룹으로 묶을 수 있음
2. 구조체(Structure)로 나타내기
구조체로 새로운 자료형을 만드는 방법
struct People{
int age[4];
float height[4];
}
구조체로 만든 자료형으로 변수 선언하기
struct People data;
struct People friend_list[64];
struct People *p;
이때 귀찮으니 사용하는것이 typedef 문법 !
typedef struct People Person;
Person data;
주로 사용되는 방법 : struct와 typedef를 조합해서 구조체 변수를 선언하기
typedef struct People{
int age[4];
float height[4];
}Person;
주의 !
struct People{
int age[4];
float height[4];
}Person;
typedef를 생략한것은 다른 의미로 사용 !
People이라는 자료형을 만들면서 Person 변수를 선언해주는 형식으로 사용됌
구조체로 선언한 변수의 요소 사용하기
구조체 변수 이름.사용할 요소
#include <stdio.h>
typedef struct People{
int age[4];
float height[4];
}Person;
void main(){
Person data;
data.age[0] = 21;
data.height[0] = 186.1;
printf("%d살이고 %.1fcm입니다", data.age[0], data.height[0]);
}
결과 : 21살이고 186.1cm입니다
구조체로 선언한 변수를 포인터로 사용하는법
Person data;
Person *p;
p = &data;
(*p).age = 23;
여기서 * 연산자의 우선순위가 . 연산자보다 낮음
*p.age 처럼 사용할 시 오류가 발생 괄호는 필수 !
괄호 이슈를 없애는 방법 : -> 연산자의 사용
(*p).age;
p->age;
같은 의미로 사용가능하다 !
구조체 문법으로 선언한 변수의 초기화 방법
Person data = {21, 186.1};
구조체 내부에 선언한 변수의 순서와 초기값의 순서가 같아야한다는 점 유의 !