c언어 구조체 개념 정리
c언어 구조체
c언어 구조체란 여러 개의 변수를 하나의 그룹으로 묶어서 자료형을 만드는 건데 여기에는 포인터는 물론 배열도 포함될 수 있습니다. 기본 자료형과는 성격이 약간 다르지만 편리성을 위해서 새로운 자료형을 만드는 것이라고 생각하면 될 거예요. 예를 들어 평면에서 좌표를 구한다고 생각해볼게요. 좌표는 x,y가 무조건 짝을 이루어서 다녀야 합니다. 떨어질 수가 없는 관계인 거죠. 그래서 이 둘을 하나의 구조체로 묶어서 사용할 수 있는겁니다. 만약에 구조체 이름을 aaa라고 한다면 다음과 같이 c언어 구조체를 만들 수 있습니다.
struct aaa{ int x; int y; };
마지막 중괄호 (}) 뒤에 세미콜론(;) 붙이는 거 참고하시고요. 이렇게 구조체를 만들 수 있습니다. 이것은 int나 char처럼 ' aaa'라는 새로운 자료형을 만든 것과 같습니다. 그렇기 때문에 이에 대한 변수를 만들 수 있는데요. 보통 int a; 또는 char str; 변수 선언하듯이 struct aaa na;형식으로 'na'라는 변수를 선언할 수 있습니다. 이제 na라는 변수 안에는 int x와 int y를 포함하게 되는데요. 이 녀석들한테 접근할 때는 na.x / na.y 처럼 참조 연산자(.)를 이용하면 되고 이렇게 멤버에 접근해서 값을 저장하거나 출력할 수 있습니다. 예제에서 직접 확인해볼게요.
앞에서 정리한 내용대로 구조체를 만들고 그 변수 na를 선어하고 있으며 scanf() 함수로 데이터를 입력받아서 저장했다가 그 값을 다시 출력하고 있는 모습입니다. 이처럼 구조체의 변수를 통해서 멤버에 접근할때는 (.)를 사용하면 됩니다.
이렇게 해서 c언어 구조체를 만들고 그의 변수를 이용해서 멤버에 접근하는 과정을 알아봤는데요. 앞에서 잠깐 언급했듯이 구조체의 멤버에는 포인터와 배열도 가능합니다. 다음 글에서는 이것들에 대해서 알아볼게요. 수고하셨습니다.