C언어 \ C++
[C언어] 구조체(struct)에 배열을 선언하여 사용 방법, 선언과 동시에 초기화
안산드레아스
2022. 3. 3. 00:30
반응형
앞서 구조체에 대한 설명이 있다.
https://ansan-survivor.tistory.com/1331
[C언어] 구조체(struct) 에 대해서, C언어 구조체란? 구조체 사용방법, 구조체 선언과 동시에 초기화
구조체(struct)란? - 여러 자료형(int, double 등)을 하나로 묶어서 표현할 수 있도록 함. - struct [자료형] 형태. 즉, 사용자 정의 자료형을 만듦. - 구조체를 만들면 여러 자료형을 담고 있는 구조
ansan-survivor.tistory.com
이 구조체에 대한 인스턴스를 변수 하나가 아닌 배열로 선언이 가능하다.
아래는 arr[3] 으로 배열 3개를 만들어 각각 구조체 인스턴스가 하나씩 들어간 형태이다.
#define _CRT_SECURE_NO_WARNINGS // visual studio 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>
struct point
{
int xpos;
int ypos;
};
int main()
{
// point구조체의 인스턴스로 배열선언
struct point arr[3];
int i = 0;
for (i=0;i<3;i++)
{
printf("점 좌표 입력:");
scanf("%d %d", &arr[i].xpos, &arr[i].ypos);
}
for (i = 0; i < 3; i++)
{
printf("[%d, %d]", arr[i].xpos, arr[i].ypos);
}
return 0;
}
반응형
결과를 보면 arr[0]에 xpos, ypos 그리고 나머지 arr[1], arr[2]에도 다 들어가있다.
그것을 결과로 출력한 것.
여러 타입(Type) 자료형이 들어가있는 구조체(Struct)의 선언 및 바로 초기화
#include <stdio.h>
struct person
{
char name[20];
char phoneNum[20];
int age;
};
int main()
{
// 구조체 배열 인스턴스를 선언과 동시에 초기화 시키기 (초기값 부여)
struct person arr[3] = {
{"jack", "010-1234-4323", 31},
{"tom", "010-4321-4323", 21},
{"tom", "010-1646-4323", 45}
};
int i;
for (i=0;i<3;i++)
{
printf("%s %s %d \n", arr[i].name, arr[i].phoneNum, arr[i].age);
}
return 0;
}
반응형