Programming/C++

[C++] 구조체

콩순이컴퓨터 2025. 6. 3. 00:23

구조체란 ? "사용자 정의 자료형"을 말한다. 

int, float, char 등 이미 정의되어 있는 자료형을 사용할 수도 있지만 여러 가지 자료형이 합쳐진 나만의 자료형을 만들어 사용할 수도 있다. 선언 방식과 사용법은 아래 코드와 같다. 

  • typedef : type을 재정의한다. 
  • struct : 구조체를 선언한다. 
typedef struct _tagMyST
{
    int a;
    float f;
}MYST;

typedef struct _tagBig
{
    MYST k;
    int i;
    char c;
}BIG;

int main()
{
    MYST t = {100, 3.14f}; //8byte
    t.a = 10; //값 변경도 가능 
    t.f = 10.2312f; 
    
    int iSize = sizeof(MYST); //내가 선언한 변수 or 자료형의 사이즈 값 확인 가능 
    
    return 0;
}

 

그런데 C와 C++의 정의 방식이 약간 다르다. 

// C
struct NewStruct
{
    int a;
    float b;
};

struct NewStruct a; //struct라고 "명시"해 주어야 함
// C++
typedef struct NewStruct 
{
    int a;
    float b;
}NEWST;

NEWST a;