문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. [목차] == 개요 == C와 C++언어에서 구조화된 데이터를 처리할때 사용한다. 쉽게 그리고 한마디로 말하면 구조체란 하나 이상의 변수를 묶어서 새로운 자료형을 정의하는 도구이다. 구조체를 정의할 때 '''struct'''를 사용한다. 아마 구조체에 대해 찾아볼 정도면 이미 여러가지 자료형(type)을 만나본 뒤일 것이다. [* 예를 들어 int, double, float, 배열, 포인터 변수등이 그것이다.] 이러한 자료형들은 이미 C와 C++ 안에 내장되어있는 자료형으로 사용자(우리)가 직접 건들수가 없다. 하지만 구조체가 그와 비슷한 일을 하게 해준다. 바로 새로운 자료형을 우리가 직접 정의할 수 있게 해주는 것이다. 사용자가 직접 정의한 자료형을 '사용자 정의 자료형(user defined data type)'이라고 부른다. 마우스 [[포인터]]를 예로 들어보자. 마우스 포인터는 2차원 내에서 움직이기 때문에 x값과 y값을 가지고 위치를 표현할 수 있다. 마우스가 움직일때마다 이 x, y값은 변하며 둘 중 하나라도 없어지게 되면 마우스의 위치를 의미하던 이 값은 의미를 잃게 된다. 이 두 값은 다음과 같이 선언할 수 있다(자료형과 변수명은 사용자에 따라, 상황에 따라 달라질 수는 있다). {{{int Xposition; // 정수형 Xposition 선언 int Yposition; // 정수형 Yposition 선언}}} 보다시피 2개의 변수를 따로 선언했다. {{{struct position //position형 구조체 선언 { int Xposition; //정수형 Xposition 선언 int Yposition; //정수형 Yposition 선언 } }}} 이해하기, 아니 받아들이기 힘들지도 모르지만 구조체를 알기 위해선 방금 position형 자료형이 선언됐다는 것을 인정해야 한다. 다른 int형, float형, double형의 자료형처럼 position 형 자료형이 생긴 것이다. 사용법을 보면 금방 익숙해질 것이다. {{{struct position pos1, pos2; //position 자료형을 가진 변수 pos1, pos2를 선언하였습니다. pos1.Xposition=10; //position형 pos1변수의 Xposition의 값을 10으로 초기화하였습니다. pos1.Yposition=34; //position형 pos1변수의 Yposition의 값을 34으로 초기화하였습니다. pos2.Xposition=23; //position형 pos2변수의 Xposition의 값을 10으로 초기화하였습니다. pos2.Yposition=7; //position형 pos2변수의 Yposition의 값을 34으로 초기화하였습니다.}}} 처음 선언부를 보면 일반 변수처럼 ,를 이용해 연속적으로 선언이 가능한 모습을 볼 수 있다. 이것이 가능한 것은 엄염히 하나의 자료형으로서 변수를 선언하고 있기 때문이다. 그리고 구조체 내부의 값에 접근하기 위해서는 .을 이용한다. pos1, pos2 변수의 값을 .를 이용해 접근한 뒤 임의의 값으로 초기화 하는것을 볼 수 있다.[* 어디까지나 예제이기때문에 왜 2개의 변수를 선언했고 저 초기화값에는 어떤 의미가 담겨있을까를 고민하기 시작한다면 머릿속이 심히 골룸해진다.] [[분류:프로그래밍]] 구조체 문서로 돌아갑니다.