CAPS 위키 : 구조체

구조체 [ 수정 내역 ] [ 수정 ]

최근 수정:

목차

1. 개요

2. 문법

3. 사용 방법

1. 개요

C언어의 키워드 중 하나로, 영어로는 struct라고 한다.

절차지향 언어인 C언어에서 객체지향을 어느 정도 따라 할 수 있는 기능으로, 하나의 변수 덩어리를 만든다 생각하면 편하다.

예를 들자면, 우리가 좌표 공간의 한 점을 표현하고 싶을 때, 3차원 공간의 위치를 표현하기 위하여 x,y,z축을 설정하고, 이의 좌표 값을 사용한다. 이 좌표값을 하나 하나 x, y, z를 변수로 선언하여 사용하면 좋겠지만, 그렇게 되면 변수를 선언하는 부분이 길어지기도 하고, 어떤 기능을 하는 변수인지 확실하게 알기 어렵다. 그래서, 이 좌표들을 하나의 그룹으로 만들어서 지정해주면 직관적이고, 만약 여러개의 점이 있더라도 배열로 선언하거나 포인터로 선언하게 되면 좋기 때문에 이 방법을 이용한다.

2. 문법

위에 예시로 들었던 부분을 C언어 코드를 이용하여 선언하면 다음과 같다.

struct point{

  int x;

  int y;

  int z;

}

이렇게 코드를 작성하면, point 라는 구조체에 x,y,z 좌표가 int 값으로 존재하는 하나의 그룹을 묶을 수 있다. 이때 point는 구조체의 이름으로, 자료형과 같은 방법으로 어떤 함수에서나 들고와서 사용하면 된다.

3. 사용 방법

구조체 내의 변수에 접근하려고 하면 온점 혹은 화살표(->) 를 사용하면 되는데, 구조체로 선언된 경우에는 온점을 통하여 접근하고, 구조체 포인터로 선언된 경우에는 화살표를 사용하여 접근하면 된다.

C언어의 경우 객체지향의 기능이 없기 때문에 변수의 그룹을 지어줘서 이 그룹을 기반으로 약간의 흉내를 낼 수 있으며, 자료구조를 구현할 때 유용하게 사용할 수 있다. [1]


[1] 사실 직접 구현해서 사용하기 보다는 C++ 언어를 사용해서 algorithm 헤더에 있는 STL을 사용하면 편하고 안정적이겠지만, C만 사용할 수 있는 경우에는 구조체를 열심히 사용해서 구현해야 한다.