Structure   구조체

(2020-01-05)

C 언어 구조체, 구조체 데이터, 구조체 포인터

1. [C 언어]  구조체

  ㅇ 1 이상의 다른 데이터형을 갖는 변수들을 모아둔 집합체

  ㅇ 사용 목적
     - 여러 관련 변수들을 하나의 의미로 묶을 때 유용
     - 특정 목적에 맞는 새로운 자료형의 생성 등


2. [C 언어]  구조체의 특징구조체의 강점 : 다채로운 데이터 표현 능력
     - 단지 개별 변수,배열 만으로는 표현에 한계 있음
     - 구조체는 그 이상으로 데이터 표현 능력을 향상시킴

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

  ㅇ 구조체명명 규칙 : 통상적인 C 명명 규칙에 따름
     - 변수명의 통상적인 C 명명 규칙에 따라 작성
     - 단, 구조체 태그명(구조체이름)은, 대문자로 시작함이 관례임

  ㅇ 구조체의 확장 : 클래스
     - 바로 객체지향언어C++에서의 클래스
3. [C 언어]  구조체정의,선언

  ※ ☞ 구조체 정의 및 선언 참조
     - 구조체 정의[전산] : 구조체 구성 정보를 자세하게 컴파일러에게 알려 줌
     - 구조체 선언 : 구조체 변수를 만들어 실제 기억 공간을 확보/할당하게 됨

  ㅇ 구조체선언,정의 위치
     - 통상, 프로그램 내 main 함수 밖에 위치시킴
     - 만일, main 함수 내 위치하면, 그 안에서 만 사용 가능

  ㅇ 구조체동적 메모리 할당 (구조체 포인터)
     - 형식) struct 구조체명 *포인터명 = malloc(sizeof(struct 구조체명));
        . 즉, 구조체 포인터선언동적 메모리 할당


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

  ㅇ 구조체 멤버(구성 요소)로의 접근
     - 일반 구조체의 멤버 접근 : 도트(.) 연산자 사용
        . 형식) 구조체명.요소명;
     - 구조체 포인터의 멤버 접근
        . 화살표(->) 연산자 사용
           .. 형식) 구조체포인터명->요소명;
        . 또는, 구조체 포인터역참조에 의해 해당 구조체의 멤버 접근 : 
           .. 형식) (*구조체포인터).요소명
     - 구조체의 멤버가 포인터일 때의 멤버 접근
        . 형식) *구조체변수.멤버 또는 *구조체포인터.멤버


5. [C 언어]  참고사항
 
  ㅇ 구조체의 복사/복제
     - 단지 구조체 변수들 만으로,
     - 대입문(a = b = c;)에 쓰면,
     - 해당 구조체 내 모든 요소들이 복제됨

  ㅇ 구조체의 초기화 형식
     - struct 구조체태그명 구조체변수명 = { .멤버명1=값1, .멤버명2=값2, .멤버명3=값3, ... };
     - 또한, 멤버명 없이도 가능하나, 이때는 정의된 순서가 같아야 함
        . struct 구조체태그명 구조체변수명 = { 값1, 값2, 값3, ... };

  ㅇ 구조체의 배열 선언
     - struct 구조체태그명 구조체배열변수명[크기];
        . 구조체배열변수명 : 구조체태그명으로 선언된 구조체들을 원소로 갖는 배열명


[구조체,공용체] 1. C 구조체 2. C 구조체 정의,선언 3. C 공용체
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
          1. 프로그램, 프로그래밍
      1.   프로그래밍 언어론
      2.   프로그래밍 방법론
      3.   객체지향 프로그래밍
      4.   자료표현코드
      5.   자료구조
      6.   알고리즘
      7.   시스템 소프트웨어
      8.   프로그래밍언어 종류
            1. 프로그래밍 언어
        1.   C
              1. C 언어
              2. C 기초 문법
              3. C 연산자
          1.   C 언어 컴파일
          2.   C 변수,자료형
            1.   1. C 변수
                2. C 자료형
                3. C 형변환
                4. 기억 클래스
          3.   C 상수,문자,문자열
          4.   C 함수
          5.   배열,포인터
          6.   구조체,공용체
        2.   C++
        3.   자바(Java)
        4.   자바스크립트
        5.   PHP
        6.   파이썬
        7.   (기타 언어)
      9.   프로그래밍 기타일반
    4.   데이터베이스
    5.   소프트웨어 공학
    6.   운영체제
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

 
        최근수정     요약목록     참고문헌