구조체 배열 선언
struct 구조체이름 변수이름[크기];
구조체 배열 멤버 접근
배열[인덱스].멤버
구조체 배열의 모든 멤버의 값을 0으로 초기화
struct 구조체이름 변수이름[크기] = {0, };
구조체 배열을 선언하는 동시에 특정 값 할당
struct 구조체이름 변수이름[크기] = {
{멤버1 = 값1, 멤버2 = 값2},
{멤버1 = 값3, 멤버2 = 값4}
};
struct 구조체이름 변수이름[크기] = {
{순서대로값1, 순서대로값2},
{순서대로값3, 순서대로값4}
};
#include <stdio.h>
struct Point2D {
int x, y;
};
int main(int argc, char *argv[]) {
// 크기가 3인 구조체 배열
struct Point2D p[3];
// 인덱스로 요소에 접근한 뒤 점으로 멤버에 접근
p[0].x = 10; p[0].y = 11;
p[1].x = 20; p[1].y = 21;
p[2].x = 30; p[2].y = 31;
// 배열 출력
printf("[0]: %d %d\n", p[0].x, p[0].y);
printf("[1]: %d %d\n", p[1].x, p[1].y);
printf("[2]: %d %d\n", p[2].x, p[2].y);
return 0;
}
// [0]: 10 11
// [1]: 20 21
// [2]: 30 31
#include <stdio.h>
struct Point2D {
int x, y;
};
int main(int argc, char *argv[]) {
struct Point2D k[2] = {0,}; // 모든 요소의 멤버를 0으로 초기화
printf("=> [0]: %d %d\n", k[0].x, k[0].y);
printf("=> [1]: %d %d\n\n", k[1].x, k[1].y);
// => [0]: 0 0
// => [1]: 0 0
return 0;
}
#include <stdio.h>
struct Point2D {
int x, y;
};
int main(int argc, char *argv[]) {
// 순서 바뀌어도 되고, 멤버 누락되어도 됨
struct Point2D p[2] = {
{.x = 10, .y = 11},
{.x = 20, .y = 21}
};
printf("=> [0]: %d %d\n", p[0].x, p[0].y);
printf("=> [1]: %d %d\n\n", p[1].x, p[1].y);
// => [0]: 10 11
// => [1]: 20 21
// 순서가 바뀌거나 누락되면 안 되고, 순서대로 전부 할당해야 함.
struct Point2D h[2] = {
{10, 11},
{20, 21}
};
printf("=> [0]: %d %d\n", h[0].x, h[0].y);
printf("=> [1]: %d %d\n\n", h[1].x, h[1].y);
// => [0]: 10 11
// => [1]: 20 21
return 0;
}