English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ 구조체(struct)

이 문서에서는 C ++프로그래밍에서의 구조. 그것이 무엇인지, 어떻게 정의하고 프로그램에서 사용하는지에 대해 알아보겠습니다.

구조는 단일 이름 아래에 다른 데이터 타입의 변수가 모인 집합입니다. 그것은클래스두 가지 모두 다른 데이터 타입의 데이터 셋을 저장하고 있습니다.

예를 들어:특정 사람에 대한 일부 정보를 저장하고 싶다면: 이름, 신분증 번호, 급여. 이러한 정보를 각각 저장하기 위해 다른 변수 name, citNo, salary를 쉽게 생성할 수 있습니다.

하지만, 앞으로는 여러 사람에 대한 정보를 저장하고 싶을 수 있습니다. 지금은 각 사람의 각 정보를 다른 변수로 만들어야 합니다: name1, citNo1, salary1, name2, citNo2, salary2

변수와 코드가 얼마나 크고 혼란스럽게 보이는지 볼 수 있습니다. 또한, 변수 간에 어떤 관계(정보)도 없기 때문에 이는 어려운 작업입니다.

다른 방법은 모든 정보를 Person 아래에 모으고 각 사람에게 사용하는 것입니다. 지금은 코드가 더 간결하고 읽기 쉽고 효율적입니다.

사용자 정보를 모으기 위해 단일 이름 Person을 사용하는 것은 구조체입니다.

C ++구조체를 선언하는 방법?

struct 키워드는 구조체 타입을 정의하며, 이후에 식별자(구조의 이름)가 따르きます.

그런 다음 괄호 안에서 구조체의 하나나 여러 개의 멤버를 선언할 수 있습니다(괄호 안에서 변수를 선언). 예를 들어:

struct Person
{
    char name[50];
    int age;
    float salary;
};

여기서 구조체 Person이 정의되어 있습니다. 그것은 name, age, salary 세 가지 멤버를 가지고 있습니다.

구조를 생성할 때는 메모리가 할당되지 않습니다.

구조 정의는 변수의 블루프린트를 만듭니다. 이를 데이터 타입으로 사용할 수 있습니다. 다음과 같이 정수를 정의할 때:

int foo;

int는 변수 foo가 정수 요소만 받을 수 있음을 지정합니다. 마찬가지로 구조 정의는 구조 변수가 정의될 때만 해당 변수가 가지는 속성을 지정합니다.

주의사항: 주의하세요,(;)구조체의 선언을 끝내는 방법

구조체 변수를 정의하는 방법은 무엇인가요?

구조체 Person을 선언했을 때 그와 같이 구조체 변수를 정의할 수 있습니다:

Person bill;

여기서 구조체 변수 bill이 정의되어 있습니다. 그 타입은 구조체 Person입니다.

구조체 변수가 정의되면 컴파일러가 필요한 메모리를 할당합니다.

당신이32비트 또는64비트 시스템에서 float의 메모리 공간은4바이트의 메모리 공간을 차지합니다.4바이트의 메모리 공간을 차지하며1바이트를 할당했습니다。

따라서 구조체 변수 bill에58바이트의 메모리 공간을 차지합니다。

구조체의 멤버에 접근하는 방법은 무엇인가요?

사용점표기자(.)연산자는 구조체 변수의 멤버에 접근할 수 있습니다.

구조체 변수 bill의 멤버 속성 age에 접근하고 값을 할당하려고 할 때 가정해 보세요:50. 다음과 같은 코드를 사용하여 이 작업을 수행할 수 있습니다:

bill.age = 50;

예제: C ++구조

C ++프로그램은 데이터를 구조체 변수의 멤버에 할당하고 그것을 표시하는 용도로 사용됩니다。

#include <iostream>
using namespace std;
struct Person
{
    char name[50];
    int age;
    float salary;
};
int main()
{
    Person p1;
    
    cout << "입력 이름: ";
    cin.get(p1.name, 50);
    cout << "입력 연령: ";
    cin >> p1.age;
    cout << "입력 급여: ";
    cin >> p1.salary;
    cout << "\n보여지는 정보: " << endl;
    cout << "이름: " << p1.name << endl;
    cout << "연령: " << p1.age << endl;
    cout << "급여: " << p1.salary;
    return 0;
}

출력 결과

이름 입력: 张小三
연령 입력: 22
급여 입력: 12200
정보 표시:
이름: 张小三
연령: 22
급여: 12200

여기서, name, age, salary라는 세 가지 멤버를 가진 구조체를 선언합니다.

main()에서 함수내부, p1구조체 변수를 정의한 후, 사용자가 입력한 정보를 입력하고 표시합니다.

구조체와 관련된 다른 가이드를 확인할 수 있습니다: