코딩/C언어

[C언어] 구조체

poiri3r 2025. 10. 13. 11:57

구조체는 프로그램 개발에 있어서 매우 핵심적인 요소입니다. 가볍게 살펴보겠습니다.

 

구조체는 하나 이상의 변수를 묶어서 새로운 자료형을 정의하는 도구입니다.

이를테면 프로그램상에서 마우스의 포인터 위치를 x,y좌표로 저장해야된다고 할때,

int xpos;
int ypos;

이 둘을 항상 함께 저장해야합니다. 이 두 변수는 같은 정보를 표현하기 때문인데 이 둘을 따로 선언하고 관리하는것이 아닌 묶어서 데이터 표현과 관리성을 높이기 위해 구조체를 사용합니다.

struct point
{
    int xpos;
    int ypos;
};

 

구조체는 다음과 같이 선언할 수 있습니다.

다음과 같은 구조체를 한번 더 살펴보겠습니다.

struct person
{
    char name[20];
    char phonenum[20];
    int age;
};

 

개인의 이름 전화번호 나이를 저장할 수 있는 구조체입니다.

 struct person poirier = { "dustin", "01012345678", 34 };

 

위와 같이 선언해줍니다.

printf("%s \n", poirier.name);
printf("%s \n", poirier.phonenum);
printf("%d \n", poirier.age);

 

출력은 . 연산자를 사용하여 개별적으로 지정해 출력할 수 있습니다

 

구조체 포인터 변수도 만들 수 있습니다.

#include <stdio.h>
#include <string.h>
int main() {
    struct person
    {
        char name[20];
        char phonenum[20];
        int age;
    };
    struct person poirier;
    struct person* ptr = &poirier;
    strcpy_s(ptr->name, sizeof(ptr->name), "poirier");
    strcpy_s(ptr->phonenum, sizeof(ptr->phonenum), "01011234123");
    ptr->age = 20;

    printf("%s \n", poirier.name);
    printf("%s \n", poirier.phonenum);
    printf("%d \n", poirier.age);                            
   
}

위의 예제처럼 구조체 포인터의 화살표 연산자를 사용하면 구조체 포인터를 이용해 데이터 항목을 지정할 수 있습니다.

 

 

간단하게 구조체에 대해 알아봤습니다.

읽어주셔서 감사합니다