Structure   구조체, 구조물, 구조체 데이터, C 언어 구조체

(2018-07-17)
1. 구조, 구조물, 구조체 이란?

  ㅇ [일반]  구조 (Structure)                           ☞ 구조 아키텍쳐 조직 매커니즘 참조
     - 자연에 나타난 구성 형태 (내재적 관점)
        . 모양/형태를 잡아주는 특징적 뼈대
     - 例) 대수적 구조

  ㅇ [정역학]  구조물
     - 하중을 지지,전달,견디어 내도록 하는 부재들의 조립체
        . 例) 건축물의 골조, 철교 등

  ㅇ [프로그래밍 언어]  구조체 (일명, 레코드)
     - 하나 이상의 다른 데이터형을 가진 변수들의 집합
2. [ C 언어 ]  C 구조체 특징

  ㅇ 구조체의 강점
     - 단지 변수,배열 만으로는 표현하기에 어렵지만,
     - 구조체는 그 이상으로 데이터 표현 능력을 향상시킴

  ㅇ 구조체의 명명
     - 변수명의 작성규칙에 따라 작성

  ㅇ 구조체의 데이터형
     - 비록, 개별 변수는 아니지만, 일종의 데이터형으로의 역할도 가능 
     - 따라서, 구조체를 사용하여 새로운 데이터형도 만들 수 있음

  ㅇ 구조체의 구성 요소 (이를, 멤버 또는 필드 라고도 함)
     - 구조체 멤버의 예는, 변수, 배열, 포인터 또는 다른 구조체 일 수가 있음
     - 한편, C++에서는 함수도 멤버로써 가능

     - 구조체 멤버(구성 요소)로의 접근 : 도트(.) 연산자 사용
        . 例) 구조체명.요소명;

  ㅇ 구조체의 확장
     - 바로 객체지향언어C++에서의 클래스인 셈


3. [ C 언어 ]  C 구조체 선언 및 정의

  ㅇ 구조체 선언, 구조체 정의 비교
     - 구조체 선언 : 구조체 구성 정보(자료형)를 컴파일러에게 알려 줌
        . `struct 구조체태그명` 바로뒤에,
           .. 구조체태그명 : 구조체 자료형으로써 선언됨을 알려주는 명칭
        . `중괄호 { }`로 둘러싸인 구조체 멤버들이 열거 됨
     - 구조체 정의 : 구조체 변수를 만들어 실제 기억 공간을 확보/할당하게 됨

  ㅇ 구조체 선언 형식
     - 구조체 태그(structure tag)를 사용하는 선언 형식
         
struct 구조체태그명 {
   구조체 멤버 1;
   구조체 멤버 2;
   ...;                       
} ;
- 구조체 태그(structure tag)를 사용 않는 선언 형식
struct { 
   구조체 멤버 1;
   구조체 멤버 2;
   ...;       
} 구조체변수 1, 구조체변수 2 ;  // 여기서, 구조체 선언시 구조체 정의도 같이 하는 것임
ㅇ 구조체 변수 정의 형식 - struct 구조체태그명 구조체변수; // C 언어 . 이전에 구조체 태그명으로써 선언된 구조체에 대한 구성 정보를 토대로, . 구조체 변수를 정의 함 (실제 기억 공간 확보) . 여기서, `struct 구조체태그명`에 의해 새롭게 데이터형을 만드는 것임 - 구조체태그명 구조체변수; // C++ (struct 생략) 4. [ C 언어 ] 기타참고사항 ㅇ 구조체의 복사/복제 - 단지 구조체 변수들로 대입문(a = b = c;)에 쓰면 구조체 내 모든 요소들이 복제됨 ㅇ 구조체 데이터형에 원하는 이름 부여 가능 - 例)
typedef struct {
    int num;
    char name[10];
} Student;
ㅇ 구조체 초기화 형식 - struct 구조체태그명 구조체변수명 = { 값1, 값2, 값3, ... };


[C 변수,상수,자료형] 1. C 상수 2. C 자료형 (변수) 3. C 구조체

 
        최근수정     요약목록(시험중)     참고문헌