- Today
- Total
Recent Posts
Recent Comments
Archives
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 셀레니움
- 면접 파이썬
- Crawling
- 파이썬 자료구조
- 대학시험
- 프로그래밍
- 파이썬 강의
- 파이썬3
- python data structure
- 파이썬활용
- c언어
- 자료구조
- 기말시험
- 중간시험
- 크롤링
- selenium
- gdrive
- 코딩문제
- 알고리즘 강좌
- 채용문제
- 자료구조 강의
- 파이썬 입문
- 알고리즘
- 파이썬 알고리즘
- 알고리즘 강의
- 파이썬 강좌
- 쉬운 파이썬
- 코딩시험
- python 중간고사
- 파이썬
Notice
반원 블로그
[C 프로그래밍] 구조체_1.기본이론 본문
▶1. 구조체?
프로그래밍에는 int, char와 같은 기본자료형이 있다. 좀더 큰 범주로 보면 자료형에 속하며 자료형에는 앞서 말한 기본자료형, 유도 자료형이 있다. 우리가 흔히 쓰는 배열, 포인터도 유도 자료형에 속한다. 다음 그림을 보자
유도 자료형은 기본 자료형을 응용해서 좀 더 복잡한 자료를 구현하기위해 지원된다.
같은 자료형을 계속 연결되있는 형태인 배열을 생각하면 편할 것이고, 포인터는 동적배열이 가능한 것을 생각하면 이해하는데 도움이 될 것같다. 이러한 유도 자료형중 오늘은 구조체에 대해 알아보자.
▶2. 여러 데이터 타입을 하나로 묶을 수 있는 구조체 struct
구조체를 이용하면, 여러 종류의 변수를 하나로 묶어서 사용할 수 있다.
신체검사지를 무슨 네용이 적혀있을지 생각해보자. 이름, 나이, 키, 몸무게 등 여러 수치들이 적혀있을 것이다. 이 정보를 프로그래밍에서 이 정보를 어떻게 저장해야할까? 또한 여러사람의 신체검사지는 어떻게 저장하고 관리해야될까? 구조체를 쓰면 쉽게 구현할 수 있다.
구조체는 함수 선언처럼 void main 상단에 미리 형태를 구상해서 써놓는다.
#include <stdio.h> //구조체 선언위치 struct profile{ char* name; int age; double height; double weight; }; void main(){ ..... }
▶3.구조체 사용방법
기본 사용 방법은 다음과 같다. 위에 정의한 profile구조체를 통해 예시를 들어보자//구조체 정의 방법 struct 구조체이름 구조체변수 이름; struct profile p1; //구조체 필드에 접근 하는 방법 구조체변수.필드이름; p1.name; p1.height;
그런데 구조체는 보통 여러 데이터를 저장하기위해 단위로 만든 것이라서 단독사용은 쓰이는 곳이 별로 없다.
대부분 동적배열, 연결리스트를 이용하여 관리하기때문에 구조체 포인터 변수를 사용한다.struct profile *p1; (*p1).weight;//몸무게 값에 접근 p1->weight;// 앞에 *과 .을 줄여서 -> 로 한다. 윗 줄과 같은 작동을 한다.
(*p1).weight는 p1->weight와 같다는 것을 기억하자.
▶4. 다음 포스팅에서 이 구조체를 실습하며 공부하자.
'2017 > C 프로그래밍' 카테고리의 다른 글
[C 프로그래밍] 동적 메모리_4.실습_연결리스트1(Linked List) (0) | 2017.02.25 |
---|---|
[C 프로그래밍] 동적 메모리_3.이론_연결리스트1(Linked List) (0) | 2017.02.24 |
[C 프로그래밍] 동적 메모리_2.sizeof 응용 (0) | 2017.02.22 |
[C 프로그래밍] 동적 메모리_1.기본이론 (0) | 2017.02.21 |
[C 프로그래밍] 파일 출력 함수_3.연결 리스트 저장, 불러오기 (0) | 2017.02.19 |
[C 프로그래밍] 파일 출력 함수_2.바이너리 모드 (0) | 2017.02.19 |
[C 프로그래밍] 파일 출력 함수_1.기본 (0) | 2017.02.17 |
[C 프로그래밍] 파일 입력 함수 (0) | 2017.02.17 |
Comments