구조체란 간단히 말해서 다른 자료형들의 모임.이다. 일종의 레코드.
구조체를 구성하는 것들을 멤버변수(필드field,아이템item)라고 한다.
형식>
struct 구조체명{
자료형 변수;
...
} // 구조체 선언
...
struct 구조체명 변수;
->
struct people{
int age;
char name[10];
char addr[20];
char sex;
...
}
struct people busan;
이럴수도 있고, 선언후 바로
struct people{
int age;
char name[10];
char addr[20];
char sex;
...
} busan;
이럴수도 있다. 또한
typedef struct people{ // people 구조체 선언하고
int age;
char name[10];
char addr[20];
char sex;
...
} man; //struct people 으로 선언하는것 대신 man으로 대체한다고 선언.
이런경우엔
man busan; 이렇게만 해도 구조체 선언이 가능함.
접근법.
busan.age
busan.name
busan.addr ... 이런식으로 접근가능.
---------------------------------------------------------------
구조체 주소변수. - 동일 구조체형으로 선언한 구조체 시작주소를 가진다. 이게 편하다.
형식.
sruct goods{
char *name;
int price;
int jaego;
};
struct goods pen;
struct goods *ppen;
ppen=&pen;
참고> ++주소변수->멤버변수; // 이건 멤버변수값을 +1 시킨다.
주소변수++->멤버변수; // 이넘은 멤버변수처리후 구조체주소변수를 +1 시킴.
예>
struct Goods{
char *name;
int price;
int jaego;
}
void main()
{
int i;
struct Goods A[3];
struct Goods *ap;
ap=&A[0];
ap->name = "ballpen";
ap->price = 500;
ap++->jaego=10;
ap->name="watch";
ap->price=10000;
ap->jaego=99;
++ap->jaego;
ap++;
(*ap).name="tape";
(*ap).price=1000;
(*ap).jaego=500;
for(i=0;i<3;i++){
printf("name : %s , price : %d, jaego : %d",A[i].name,A[i].price,A[i].jaego);
}
}