언어/c

구조체

leo_____lee 2018. 2. 8. 16:47

구조체란?

서로 다른 데이터형을 집합시켜 단일변수로 처리하게 해주는 복합 데이터형이다. 우리가 흔히 아는 int,double,char형 등의 변수와 동일하게 0차원으로써 하나의 데이터 타입을 만족한다.

선언된 순서대로 메모리에 할당되며 이의 특성을 고려하여 파일 입추력시 유용하다.

사용방법은

struct 구조체명{

맴버1 선언
맴버2 선언
...
}<전역 구조체명>;

참고로 구조체는 파스칼 네이밍 방식을 사용한다.(appleFruitKiwi 대분자로 띄어쓰기 표시)

구조체와 메모리

구조체의 틀자체는 공간을 차지않는다.

일반 데이터타입과 마찬가지로 구조체로 변수를 찍어내면 그때 메모리가 할당되게 된다.

구조체가 받을 수 있는 맴버

int char double등 뿐 아니라 배열, 또 다른 구조체까지 구조체의 맴버로 사용 가능하다.

구조체 만들어보기

struct끼리른 대입연산이 가능하며 입력한 변수 순서 그대로 입력된다.

struct도 배열이 가능하므로 초기화시 {{},{},{}..} 로 해준다.

구조체 배열생성및 대입

이런식으로 할경우 형식이 다르다는 오류가 발생.

직접 고치려면 이렇게 일일 히 바꾸어 주어야한다.

구조체 포인터

해당 포인터의 맴버변수 접근시 * 가아닌 ->를 이용한다.