Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- insertion sort
- stream
- C 언어 코딩 도장
- Stack
- 혼자 공부하는 C언어
- coding test
- Selection Sorting
- 메모리구조
- Graph
- buffer
- s
- JSON
- list 컬렉션
- 윤성우 열혈자료구조
- datastructure
- C programming
- R
- 이스케이프 문자
- 알기쉬운 알고리즘
- 윤성우의 열혈 자료구조
- Serialization
- Algorithm
- 이것이 자바다
Archives
- Today
- Total
Engineering Note
[C] Struct 구조체 본문
구조체
구조체는 다양한 자료형을 하나로 묶을 수 있는 복합 자료형으로 다양한 형태의 데이터를 처리할 때 기본으로 사용됩니다.
- C언어는 자료를 체계적으로 관리하기 위해 구조체라는 문법을 제공합니다.
- 배열은 같은 형태의 데이터를 묶어 반복문으로 처리할 수 있는 좋은 자료형이지만 배열을 사용하려면 모든 데이터의 형태가 같아야 합니다.
- 학생의 학번(315), 이름(홍길동), 학점(3.5)처럼 다른 자료형을 하나의 배열로 선언해서 처리하는 것은 불가능합니다.
- 학번은 정수이고 이름은 문자열, 학점을 실수 이기 때문입니다.
- 만약 다른 형태의 데이터들을 하나로 묶어 단일 자료형으로 다룰 수 있다면 학생별로 데이터를 처리할 수있고 반복문으로 많은 학생의 데이터를 훨씬 효율적으로 처리할 수 있습니다.
구조체 선언
- 구조체는 하나의 자료형으로 변수 선언이 가능하지만 변수 선언 전에 구조체의 형태를 컴파일러에 미리 알려주는
구조체 정의(선언)
을 해야합니다. - 구조체 선언이 끝나면 새로운 자료형이 만들어지며 그 이후부터는 사용자가 정의한 새로운 자료형으로 컴파일러가 인식이 가능하고 구조체의 변수를 사용할 수 있습니다.
- 구조체 선언 위치를 main 함수 앞에서 하면 프로그램 전체에서 사용할 수있고, 함수 안에 선언하면 그 함수 안에서만 쓸 수 있습니다.
구조체 만들고 사용하기
- 구조체는 struct 키워드로 정의(선언)합니다.
- 구조체는 사용자 정의 자료형으로 정의만 해서는 사용 할 수 없기때문에 구조체도 변수로 선언 해서 사용합니다.
- struct 구조체이름 변수이름;
- 구조체는 구조체 정의와 구조체 변수 선언을 따로 할 수도 있고, 구조체 정의 시 사용한 닫는 중괄호와 세미콜론 사이에 변수를 지정해 주면 구조체를 정의하는 동시에 변수를 선언 할 수도 있습니다.(이때의 변수는 전역변수)
- 새로 만든 구조체 변수를 선언
- struct 구조체명 변수명;
- 구조체 변수를 선언하면 비로소 저장 공간이 할당
- 저장공간의 크기는 모든 멤버를 더한 전체 저장공간이 하나의 구조체 변수
- C언어에서 구조체를 정의하고 구조체 변수를 선언 하기 위해서는 struct 구조체명 변수명; 으로 매번 struct 구조체명을 변수명 앞에 써줘야 하는 불편함이 있기 때문에 구조체를 정의하고 typedef struct 구조체명 구조체별칭; typedef를 사용하여 구조체 별칭을 지정할 수 있다. 이렇게 하면 구조체 별칭으로 구조체 변수를 선언 할 수 있다.
- 또, 구조체를 정의 할때 struct 앞에 typedef를 사용하여 정의와 동시에 별칭을 지정 해줄 수도 있다.(간편하기 때문에 이 방법이 가장 많이 사용된다.)
구조체 멤버 접근
- 일반 변수로 선언한 구조체의 멤버에 접근 할 때는.(점)을 사용
-------------------------------------------------------------------------------------------------------------
출처 : C언어 코딩 도장, 혼자 공부하는 C언어
'Programming Language > C programming' 카테고리의 다른 글
[C] 14-1 다차원 배열 (0) | 2021.04.04 |
---|---|
[C] 구조체 포인터 사용하기 (0) | 2021.03.03 |
[C] 배열 (0) | 2021.02.22 |
[C] 16-1 동적 할당 함수 (배열처럼 사용하기) (0) | 2021.02.12 |
[C] 16 -1 동적할당함수 (0) | 2021.02.12 |
Comments