본문 바로가기

Programming/C++ 2

[C++] 4장. 복합 데이터형 - (4) 구조체

반응형

4. 구조체

  • 모든 정보를 하나의 단위로 묶을 수 있는 데이터 형식
  • 여러 종류의 데이터를 저장 가능
  • 외부선언과 내부선언 [외부 변수와 내부 변수]
  • 구조체 변수
    • 변수 초기화는 한 행에 나타낼 수도  있다
    • 공백을 가지면 0으로 초기화
guest.name;
pal.name;
guest.pcrice+pal.price;

-> 멤버 연산자를 이용해 구조체의 개별적인 멤버 접근

 

  • string클래스로도 구조체 멤버 변수 가능
  • 구조체 대입
    • 구조체 정의와 동시에 구조체 변수 생성과 생성과 동시에 초기화도 가능하다
      1. 구조체를 함수의 매개변수로 전달
      2. 구조체를 리턴값으로 사용
      3. 구조체를 다른 구조체에 대입 [멤버별 대입]
struct inflatable
{
...
}

int main()
{

inflatable bouquet = //'=' 생략 가능
{
...
}

inflatable choice;

choice = bouquet;

}

choice = bouquet -> 한 구조체를 다른 구조체에 대입 [멤버 별 대입]

 

  • 구조체의 배열
    • 원소가 구조체인 배열을 생성 가능
// arrstruc.cpp -- 구조체의 배열
#include <iostream>
struct inflatable
{
    char name[20];
    float volume;
    double price;
};
int main()
{
    using namespace std;
    inflatable guests[2] =          // 구조체의 배열 초기화
    {
        {"Bambi", 0.5, 21.99},      // 배열에 있는 첫 번째 구조체
        {"Godzilla", 2000, 565.99}  // 배열에 있는 그 다음 구조체
    };

    cout << guests[0].name << "와 " << guests[1].name
         << "의 부피를 합하면\n"
         << guests[0].volume + guests[1].volume 
         << " 세제곱피트입니다.\n";
    return 0;
}

 

  • 구조체의 비트 필드
    • 구조체 멤버들이 각각 일정 비트 수를 차지하도록 지정 가능
    • 이름이 없는 필드를 사용하여 간격 지정 가능
반응형