linux/linux tips2012. 1. 9. 18:12
구조체란 하나 이상의 변수를 그룹 지어서 새로운 자료형을 정의하는 것이다.
 
구조체를 정의하는 기본적인 방법

struct point // point라는 이름의 구조체 선언     

     int x;    //구조체 멤버
     int y;    //구조체 멤버 
};
 


 point 라는 이름은 하나의 자료형이 된것이다
--> 기본자료형 변수를 묶어 새로운 자료형을 만든 것!!

구조체 정의와 구조체 변수 선언의 분리

struct point {

    int x;
    int y;
};

int main(void)
{
    struct point p1, p2, p3;
    ...
    return 0;


 구조체 변수로의 접근

int main(void)
{
    struct point p1, p2, p3;
    p1.x=10;
    p2.x=20;
    ...
    return 0;



구조체의 멤버에 배열도 들어갈수 있다.

struct person {

    char name[20];
    char phone[20];
}; 



 구조체 변수와 포인터
:구조체 포인터를 선언하여 구조체 변수를 가리킬 수 있다
person이라는 구조체가 이미 있다고 가정하고

struct person* p;


 이렇게 구조체 포인터를 선언 할수 있다.

#include <stdio.h>

struct person {
   char name[20];
   char phone[20];
};

int main()
{
    struct person man = {"thomas", "354-00xx"};
    struct person* pMan;
    pMan= &man;

    //구조체 변수를 이용한 출력
    printf("name        : %s\n", man.name);
    printf("phone       : %s\n", man.phone);

    //구조체 포인터를 이용한 출력
    printf("name        : %s\n", (*pMan).name);
    printf("name        : %s\n", (*pMan).phone);

    //구조체 포인터를 이용한 출력 2
    printf("name        : %s\n", pMan->name);
    printf("name        : %s\n", pMan->phone);

return 0;




 





포인터 변수와 구조체 멤버
: 구조체의 멤버로 포인터가 선언되는 경우

struct perinfo{
   char addr[30];
   char tel[20];
};
struct person {
   char name[20];
   char pID[20];
   struct perinfo* info;
}; 

 
구조체 변수의 주소값과 구조체 변수의 첫 번째 멤버의 주소 값
"구조체 변수의 주소 값과 구조체 변수의 첫 번째 멤버의 주소 값은 같다"
 

Posted by babuzzzy