티스토리 뷰

스마트웹 개발2021/프로그래밍 언어활용

구조체

선물공룡디보 2021. 7. 31. 19:18

구조체란?

    구조체란
  • 사용자 정의 데이터 타입
  • 관련 있는 데이터를 묶어서 처리할 수 있는 자료구조
  • 서로 다른 데이터 타입의 묶음
  • 서로 다른 데이터 타입을 묶어서 처리할 수 있도록 사용자가 정의하는 데이터 타입
    구조체 정의방법
  • 구조체의멤버로일반 변수뿐만아니라 배열이나포인터 선언가능
  • 구조체를 정의하면 새로운 데이터형이 만들어짐
  • 서로 다른 데이터 타입의 묶음
  • 구조체 정의 → 메모리 할당의 의미는 아님
  • 구조체형변수선언→ 메모리에할당
  • 구조체의 크기를 구하려면 sizeof 연산자를 이용함
struct 구조체명 {
  데이터형 멤버명 ;
  데이터형 멤버명 ;
  ∙∙∙
};

struct student {
  char name[20];
  int num, kor, eng, mat;
  double average;
};

struct { 구조체명을 생략함
  char sex;
  int age;
} m1, m2; 이름 없는 구조체의 변수를 선언함

 

    구조체 정의방법
  • 선언 시 초기화는 배열 초기화와 동일
  • { } 안에 멤버들의 초기값을 순서대로 나열
  • { } 안에 지정한 초기값이 멤버의 개수보다 부족하면 나머지 멤버들은 0으로 초기화
  • 멤버 접근 연산자 “.”을 이용한 초기화 가능
struct sungjuk { // 구조체 선언
  char *name;
  int kor, eng;
  double avg;
};

struct sungjuk m2_1 ; //구조체 선언
m2_1.name = “hong kildong”; //멤버 접근 연산자 "."을 이용한 초기화
m2_1.kor = 95;
m2_1.eng = 87 ;

 

초기화

    초기화
  • 같은 구조체형의 변수들끼리는 서로 초기화나 대입이 가능함
  • 구조체 간의 초기화 : 멤버 대 멤버 초기화
  • 동일한 멤버 간에 1:1로 복사해서 초기화
  • 구조체 간의 대입 : 멤버 대 멤버 대입
struct point {
  int x;
  int y;
};
struct point p1 = {10, 20};
struct point p2 = {30, 40};
struct point p3 = p1; // 구조체 간의 초기화
struct point p4;
p4 = p2; //구조체 간의 대입
    구조체 이해
  1. 구조체는 서로 다른 데이터를 묶어서 처리하기 용이한 자료구조임
  2. 구조체는 먼저 정의하고 변수를 선언하여 사용함
  3. 구조체 선언 시 구조체명 앞에 struct라는 키워드를 사용해야 함
  4. 구조체 변수는 모든 데이터 타입을 사용할 수 있음
    구조체 처리
  1. 구조체는 선언 시 초기화하는 것이 가능함
  2. 선언 시 초기화에는 배열과 동일한 방법으로 초기화함
  3. 구조체도 필요에 따라 구조체 배열을 선언하는 것이 가능함

'스마트웹 개발2021 > 프로그래밍 언어활용' 카테고리의 다른 글

함수의 인자  (0) 2021.08.01
공용체와 열거체  (0) 2021.07.31
포인터와 문자열  (0) 2021.07.31
포인터 활용  (0) 2021.07.28
포인터 기초  (0) 2021.07.28
댓글