기본 자료형과 마찬가지로 구조체 변수도 배열을 형성할 수 있다. 예를 들어 Point 형 변수 세 개를 배열로 생성하고 싶다면 다음과 같이 하면 된다.
Point pa[3]; |
이렇게 하면 크기가 3인 Point형 배열 변수 pa가 생성된다. 초기화 방법은 배열의 초기화와 동일하다.
Point p0 = {0,0};Point p1 = {1,1};Point p2 = {2,2};Point pa[3] = {p0, p1, p2}; |
또는 다음과 같이 바로 초기화를 할 수도 있다.
Point pa[3] = {{0,0}, {1,1}, {2,2}}; |
배열 각 요소를 통하여 구조체의 필드를 접근할 수 있다.
Point pa[3];pa[0].x = 0;pa[0].y = 0;pa[1].x = 1;pa[1].y = 1;pa[2].x = 2;pa[2].y = 2; |
동일한 방법으로 초기화 이후에도 각 필드의 값을 자유롭게 접근하여 읽거나 변경할 수 있다.
배열의 크기가 커지면 반복문을 이용하여 구조체 필드를 초기화하는 것이 일반적이다. 예를 들면 다음과 같다.
ex08-09.c |
#include <stdio.h>typedef struct {double x;double y;} Point;int main(int argc, char **argv) {Point pta[100];for (int k=0; k<100; k++) {pta[k].x = 1;pta[k].y = 1;}} |
또는 미리 정의된 Point형 변수를 이용할 수도 있다.
ex08-09.c |
#include <stdio.h>typedef struct {double x;double y;} Point;int main(int argc, char **argv) {Point pt = {1,1};Point pta[100];// 100개의 요소를 pt로 초기화시킨다.for (int k=0; k<100; k++) {pta[k] = pt;}} |
이와 같이 구조체도 배열을 생성하여 사용할 수 있다.
'프로그래밍언어.Lib > C,C++' 카테고리의 다른 글
(C언어) scanf() 함수 (0) | 2016.02.01 |
---|---|
(C언어) 구조체의 포인터 (0) | 2016.02.01 |
(C언어) 구조체 변수를 필드로 가지는 구조체 (0) | 2016.02.01 |
(C언어) 구조체를 함수의 인자로 넘기기 (0) | 2016.02.01 |
(C언어) 구조체 필드의 초기화 (1) | 2016.01.29 |