더듬이의 헬로월드

Hello, World!

프로그래밍 언어/C++ [기본]

[C++기본] 9.구조체

더듬이 2021. 8. 26. 01:21
728x90

구조체란?

사용자 지정 자료형이라고도 한다.

즉, 내가 직접 자료형을 조합해서 새로운 자료형은 만드는 것이다!


구조체의 기본 형식

struct Student
{
    int id;
    bool sex;
};

위 구조체를 보면, 나는 Student라는 새로운 자료형을 만들었다.

int형 변수 id 와bool형 변수 sex가 합쳐진 자료형이 바로 Student라는 새로운 자료형이라는 것이다.

결국 새로운 자료형이라고 해도 원래의 자료형들을 조합해서 만든 것에 불과하다.


구조체의 변수 접근

배열 마찬가지로 구조체는 각 요소가 연속적으로 메모리에 할당된다.

그렇다면, 구조체의 각 요소에 접근하고 싶다면???

Student s1;//변수 선언
cout<<s1.id<<endl;
cout<<s1.sex<<endl;

. 을 통해 구조체의 각 원소의 접근한다


구조체와 모듈화

struct A{
int A1;
double A2;
}

struct B{
A B1;
int B2;
double B3;
}

점점 몸집이 커지는 것을 알 수 있다.

이처럼 구조체의 모듈화도 충분히 가능하다.


typedef

typedef int AAA;
AAA a1;

typedef란 자료형의 이름을 새로운 별명으로 만들어주는 것이다.

위 코드에서 이제 int와AAA는 같은 역할을 하게 된다.

struct A{
int A1;
double A2;
}

사실 이 코드는 C++의 형태이다.

struct A a1;

C언어에서는 원래 이렇게 선언해 주어야 한다.

하지만, 앞마다 struct를 붙힌다는것은 너무 불편하지 않은가?

typedef struct New{
int A1;
double A2;
}A

그래서 이렇게 선언해 주는 것이다.

이는 New라는 구조체를 A라는 이름으로 부르겠다 라는 뜻이 된다.

#include <stdio.h>

typedef struct Student
{
    int id;
    char name[20];
}AAA;

int main()
{
    struct Student s1;
    AAA s2;
}
728x90

'프로그래밍 언어 > C++ [기본]' 카테고리의 다른 글

[C++기본] 11.분할 구현  (2) 2021.08.26
[C++기본] 10.지역 변수와 전역 변수  (0) 2021.08.26
[C++기본] 8.배열  (0) 2021.08.25
[C++기본] 7.함수  (0) 2021.08.25
[C++기본] 6.변수  (0) 2021.08.25