본문 바로가기
공학/C

구조체

by 둥둥잇 2014. 11. 18.


서로 다른 종류의 데이터들을 하나로 묶기 위해 사용하는 방법

여러 개의 자료형을 묶어 새로운 자료형을 만들 수 있다!


* 구조체 정의

struct point {

int x;

int y;

};


* 구조체 변수 선언

struct point p1;

    p1

ㅁㅁㅁㅁ ㅁㅁㅁㅁ

     x     |    y


* 구조체 정의와 동시에 구조체 변수 선언하기

struct point {

int x;

int y;

} p1;      //p1은 구조체 point의 변수


* 구조체의 멤버 참조

p1.x = 1;

p1.y = 2;

구조체 변수의 멤버를 참조


* 구조체 안에 구조체 포함 가능

struct rect {

struct point p1;

struct point p2;

};




* 구조체와 포인터

struct student *p;

포인터 p는 student 구조체를 가리키는 포인터

포인터를 이용한 구조체 멤버 액세스

(*p).number, (*p).name 등으로 사용


* 간접 멤버 연산자

포인터를 이용해 구조체 멤버를 가리키기 위해 -> 연산자 사용

구조체 포인터를 이용해 멤버에 접근하기 위해 사용

p->number, p->name




+

struct tag1 f()

{

struct tag1 s;

...

return s;

}

함수가 구조체를 반환하게 되면 원본 구조체의 복사본이 반환

s가 소멸되어도 상관 x


+

구조체의 멤버들의 접근 속도를 빠르게 하기 위해 보통은 4 byte 단위로 정렬

구조체에는 컴파일러에 따라서 추가적으로 패딩 바이트들이 붙을 수 있음


+

구조체 변수의 이름은 구조체 전체! 포인터 아님

'공부 > C' 카테고리의 다른 글

전처리기  (0) 2014.11.18
공용체  (0) 2014.11.18
함수와 포인터  (0) 2014.11.18
포인터  (0) 2014.11.18
배열  (0) 2014.11.18

댓글