c언어 구조체

신범철·2021년 12월 8일
0


기초자료형 : int, char, double, void
파생자료형 : 배열, 포인터, 구조체, 공용체
사용자 정의 자료형 : typedef, enum

구조체의 필요성

  • 구조체를 사용하면 변수들을 하나로 묶을 수 있습니다.

p.6 중간
1. 구조체는 다양한 자료형을 넣을 수 있다. 동일한 데이터 자료형 저장, 서로다른 데이터자료형을 하나로 묶을수 있다.
2. double, int, int, int

구조체 선언

구조체 변수 선언

구조체 선언과 구조체 변수 선언 헷갈리지 말것!

p.16 중간
1. 멤버변수
2. struct
3. 구조체의 변수이름을 다양하게 만들수 있음
4. 구조체 변수 선언을 따로 해야함
5. .

p. 20 중간
1. 대입연산자 =, +=, -=, *=,/= 등
2. 구조체 태그는 선언 태그를 통해 다양한 변수를 만들수 있고 구조체 변수는 메모리 할당 다른 값으로 설정 불가능
3. 가능
4. 가능

p25중간
struct product{
int num;
char name[20];
int price;
}
struct product list[5];

구조체와 포인터

  1. 구조체를 가리키는 포인터
  2. 포인터를 멤버로 가지는 구조체

-> 연산자

-> 연산자는 구조체 포인터로 구조체 멤버를 참조할 때 사용

구조체와 함수

구조체를 함수의 인자로 전달하는 경우

  • 구조체의 복사본이 함수로 전달되게 된다.
  • 만약 구조체의 크기가 크면 그만큼 시간과 메모리가 소요된다.

구조체의 포인터를 함수의 인수로 전달하는 경우

  • 시간과 공간을 절약할 수 있다.
  • 원본 훼손의 가능성이 있다.

구조체를 반환하는 경우 함수

  • 복사본이 반환된다.

공용체(Union)

  • 같은 메모리 영역을 여러 개의 변수가 공유
  • 공용체를 선언하고 사용하는 방법은 구조체와 아주 비슷

p42 중간
1. union
2. 공유한다.

열거형 선언(enum)

열거형이 필요한 이유

  • 오류를 줄이고 가독성을 높일수 있음

typedef

기본 자료형에 새로운 자료형을 추가하는 것

typrdef 와 #define 비교

  • 이식성을 높여줌
  • 문서화의 역할을 함 주석과 같은 효과
profile
https://github.com/beombu

0개의 댓글