구조체를 사용하려면 명령어 struct 가 필요하다. 구조체는 사용자 정의 자료형 이라는 뜻이므로 기존의 자료형(int,char등)과는
다르다.
main()함수 안에서 구조체를 선언하게 되면 main()함수 안에서만 사용이 가능하기 때문에 main() 함수의 위에서 사용한다.


#include<stdio.h>

struct Park
{
  int iNum;
  int *P;
  char cNum;
  char cNum2;
  short sNum;
}; //구조체의 서술만 해 놓은 것이다 그러므로 메모리를 차지하지 않는다.


int main()
{
  int A=100;
  struct Park B;//struct Park 이 함수B의 타입이다. 
  /*총 12 바이트를 가진다. 1바이트의 char 는 상관없는데 short 형은 주소시작이 +2,+4로
  되어 버리는 바이트가 생기게 된다. 컴파일러 옵션으로 제어가 가능한데 #pragma 지시어를 
  사용한다*/

  struct Park P;
  B.iNum=3;//구조체 내부에 접근할려면 도트(.) 연산자를 사용한다.
  B.P=&A;
  P.P=&A;
  //printf("size of A:%d\n",sizeof(A));
  //printf("size of B:%d\n",sizeof(B));
  printf("%d\n",B.iNum);
  printf("%d\n",*B.P);
  printf("%d\n",*P.P);

  printf("%08X\n",&B.iNum);
  printf("%08X\n",&B.P);
  printf("%08X\n",&B.cNum);
  printf("%08X\n",&B.cNum2);
  printf("%08X\n",&B.sNum);
  return 0;
}

구조체는 struct Park B; 여기에서 메모리를 차지하게 되는데 배열과 마찬가지로 그 크게에따라 메모리의 크기를 할당한다.
할당한 주소값의 최소값에서 부터 아래로 증가하며 변수가 들어가게 된다.


structure.png