C의 맵 또는 구조

Ammar Ali 2023년10월12일
C의 맵 또는 구조

이 튜토리얼에서는 맵이나 구조를 사용하여 C에서 변수 컬렉션을 만드는 방법에 대해 설명합니다.

C의 맵 또는 구조

구조체는 다르거나 같은 데이터 유형의 변수 모음입니다. 예를 들어, 사람의 나이, 이름 및 키를 저장하기 위한 프로필을 만들려는 경우 structure를 사용하여 단일 지도 또는 구조 아래에 모든 정보를 저장할 수 있습니다.

struct 키워드를 사용하여 C 언어로 구조를 만들 수 있습니다. 구조의 기본 구문은 다음과 같습니다.

struct NameOfStructure {
  dataType_1 member_1;
  dataType_2 member_2;
  ....
};

예를 들어, 사람의 정보를 저장하는 구조체를 만들어 봅시다. 아래 코드를 참조하십시오.

struct Person {
  char *name;
  int age;
  float height;
};

구조체는 구조체 내부에 정의된 모든 변수를 포함하는 객체를 생성하는 데 사용할 수 있는 클래스입니다. struct 키워드를 작성하고 구조체의 이름을 작성한 다음 구조체의 개체를 생성하기 위해 개체의 이름을 작성해야 합니다.

객체 이름과 점으로 연결된 변수 이름을 사용하여 모든 구조 멤버에 액세스할 수 있습니다. 변수의 값을 얻거나 할당 연산자를 사용하여 값을 변경할 수 있습니다.

예를 들어, 위 구조의 두 객체를 만들고 그 안에 값을 저장하고 printf() 함수를 사용하여 인쇄해 보겠습니다. 아래 코드를 참조하십시오.

#include <stdio.h>

struct Person {
  char *name;
  int age;
  float height;
};

int main() {
  struct Person person1, person2;
  person1.name = "Max";
  person1.age = 20;
  person1.height = 6.2;
  printf("Person 1 name = %s\n", person1.name);
  printf("Person 2 name = %s", person2.name);
}

출력:

Person 1 name = Max
Person 2 name =

위의 코드에서 우리는 두 person 객체의 이름을 출력했습니다. 출력에서 첫 번째 사람의 이름이 표시되는 것을 볼 수 있지만 두 번째 사람의 이름을 저장하지 않았기 때문에 두 번째 사람의 이름은 인쇄되지 않습니다.

두 구조 객체의 변수 값은 같거나 다를 수 있지만 독립적입니다. 위의 코드와 같이 다른 변수의 값을 얻거나 변경할 수도 있습니다.

중첩 구조라고 하는 다른 구조 내부에 구조를 만들 수도 있습니다. 다른 구조와 연결하려는 구조의 개체를 만든 다음 개체 이름을 사용하여 해당 변수에 액세스해야 합니다.

예를 들어 다른 구조체를 만들어 위의 구조체와 연결해 보겠습니다. 아래 코드를 참조하십시오.

#include <stdio.h>

struct job {
  char *name;
  int duration;
};
struct Person {
  struct job j;
  char *name;
  int age;
  float height;
};
int main() {
  struct Person person1, person2;
  person1.j.name = "Engineer";
  person1.name = "Max";
  person1.age = 20;
  person1.height = 6.2;
  printf("Person 1 job name = %s\n", person1.j.name);
  printf("Person 1 name = %s", person1.name);
}

출력:

Person 1 job name = Engineer
Person 1 name = Max

위의 코드에서 우리는 사람의 직업 정보를 저장하고 변수에 접근하기 위해 또 다른 구조체를 생성합니다. 먼저 부모 구조체(이 경우 Person)에 액세스해야 하며, 그런 다음 job에 대한 구조체 변수에 액세스할 수 있습니다.

두 개의 구조를 만들고 연결했지만 원하는 만큼 구조를 만들고 서로 연결할 수 있습니다.

많은 수의 중첩 구조의 경우 변수 정보를 얻기 위해 올바른 맵을 사용하고 있는지 확인해야 합니다. 구조는 사람 및 직업에 대한 정보와 같은 많은 정보를 저장하려는 경우에 유용합니다.

작가: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook