📖 WIPIVERSE

🔍 현재 등록된 정보: 30,992건

구조체

구조체 (Structure)는 프로그래밍에서 하나 이상의 변수(멤버)를 묶어 새로운 자료형을 정의하는 방법을 제공하는 복합 자료형이다. 사용자 정의 자료형이라고도 불리며, 서로 관련된 데이터를 하나의 단위로 묶어 관리하고 효율적으로 사용하는 데 목적이 있다. 구조체는 객체 지향 프로그래밍의 클래스와 유사하지만, 일반적으로 메서드(함수)를 포함하지 않고 데이터 저장에 집중하는 경향이 있다.

특징

  • 데이터 집합: 구조체는 서로 다른 자료형의 변수를 포함할 수 있다. 예를 들어, 사람의 정보를 나타내는 구조체는 이름(문자열), 나이(정수), 키(실수) 등의 멤버를 가질 수 있다.
  • 사용자 정의 자료형: 프로그래밍 언어가 기본적으로 제공하는 자료형(정수, 실수, 문자 등) 외에 사용자가 직접 정의하여 사용할 수 있는 자료형이다.
  • 메모리 할당: 구조체가 선언되면, 구조체 멤버들의 크기에 해당하는 메모리 공간이 할당된다.
  • 접근: 구조체의 멤버는 점(.) 연산자 또는 화살표(->) 연산자를 사용하여 접근할 수 있다. 점 연산자는 구조체 변수를 직접 사용하는 경우에, 화살표 연산자는 구조체 포인터를 사용하는 경우에 사용된다.
  • 이름 지정 (tag): C언어에서 구조체는 이름(tag)으로 정의되며, 이를 통해 여러 개의 구조체 변수를 생성할 수 있다. C++에서는 구조체가 클래스와 거의 동일하게 취급되므로, 이름 지정이 필수는 아니다.

사용 예시

구조체는 데이터베이스 레코드, 그래픽 객체, 파일 형식 등 다양한 데이터를 표현하는 데 사용될 수 있다. 예를 들어, 학생 정보를 저장하는 구조체는 다음과 같이 정의될 수 있다.

struct Student {
    char name[20]; // 학생 이름
    int id;        // 학번
    float gpa;      // 학점
};

언어별 지원

구조체는 C, C++, C#, Go, Rust 등 다양한 프로그래밍 언어에서 지원된다. 각 언어마다 구조체의 구현 방식과 사용법에 약간의 차이가 있을 수 있다. 예를 들어, C++의 구조체는 클래스와 거의 동일하게 동작하며, 메서드를 포함할 수 있다.

관련 용어

  • 클래스 (Class)
  • 객체 (Object)
  • 멤버 (Member)
  • 자료형 (Data type)