http://blog.naver.com/wlsgkr91/220901907173
1.구조체 사용하기
-변수를 하나씩 사용하면 한사람의 정보만 저장할 수 있다.
-여러명의 정보를 저장하려면 변수를 계속 추가해야된다.
-자료를 체계적으로 관리하기 위해 구조체를 제공한다.
struct Person{
char name[20];
int age;
char address[100;
}
-위와 같은 식으로 인적정보를 구조체로 표현한다.
-사람단위로 정보를 처리할 수 있다.
-구조체도 배열로 만들 수 있다.
-구조체는 관련 정보를 하나의 의미로 묶을 때 사용한다.
struct 구조체이름{
자료형 멤버이름;
}; //마지막 닫을때 ;을 붙인다.
struct 구조체 이름 변수이름;
struct Person {
char name[20];
int age;
char address[100];
};
int main()
{
struct Person p1;
strcpy(p1.name,"홍길동");
p1.age=30;
strcpy(p1.address,"인천광역시 부평구 청천동");
printf("이름 : %s\n",p1.name);
printf("나이 : %d\n",p1.age);
printf("주소 : %s\n",p1.address);
}
-구조체는 보통 메인함수 밖에 정의한다.
-함수 안에 사용하면 해당 함수 안에서만 사용가능하다.
-구조체 변수를 사용해야하고 반드시 struct를 붙여준다.
구조체를 줄여쓰기위해.
typedef를 사용한다.
typedef struct {
char name[20];
int age;
char address[100];
}Person;//구조체를 선언하는 동시에 변수선언.
int main()
{
Person p1;
strcpy(p1.name,"홍길동");
p1.age=30;
strcpy(p1.address,"인천광역시 부평구 청천동");
printf("이름 : %s\n",p1.name);
printf("나이 : %d\n",p1.age);
printf("주소 : %s\n",p1.address);
}
위와 같은 식으로 구조체 이름은 없애고 typydef사용과
구조체 변수를 사용하여 메인 함수 안에서 사용하는 코드를
간단하게 줄일 수 있다.
*구조체는 멤버 변수가 여러개 들어있어서 크기가 크다.
*구조체 변수끼리 할당하면 모든 멤버를 복사하게 됨
*구조체 변수를 일일이 선언해서 사용하는 것은 비효율적.
typedef struct {
char name[20];
int age;
char address[100];
}Person;
int main()
{
Person *p1 =malloc(sizeof(Person));
//구조체 포인터 선언 구조체이름 앞에 무조건 struct붙인다.
strcpy(p1->name,"홍길동");
p1->age=30;
//구조체 멤버의 포인터에 접근할때는 화살표를 사용
strcpy(p1->address,"인천광역시 부평구 청천동");
printf("이름:%s\n",p1->name);
printf("나이:%d\n",p1->age);
printf("주소:%s\n",p1->address);
free(p1);
//할당한 메모리를 해제 해줘야된다.
return 0;
}
'프로그래밍 > 자료구조' 카테고리의 다른 글
자료구조 공부 알고리즘의 복잡도 분석 방법 (0) | 2017.01.03 |
---|---|
자료구조 공부하기 추상 데이터 타입 (0) | 2016.12.30 |
자료구조 공부하기 자료구조란? 알고리즘이란? (0) | 2016.12.30 |
자료구조 메모리,포인터,변수 예제 (0) | 2016.12.30 |
동적 메모리 할당 (0) | 2016.12.30 |