구조체 목적
구조체는 관련 정보를 하나의 의미로 묶을 때 사용
구조체 사용 방법
1. struct
키워드로 정의
- struct 키워드 사용하여 선언
struct [구조체이름]{
자료형 맴버이름1;
자료형 맴버이름2;
...
};
//예시
struct s_member { //구조체 이름 : member
char number[10]; //구조체 맴버1
char name[20]; //구조체 맴버2
int age; // 구조체 맴버3
};
2. typedef
키워드로 정의
- struct 없이 선언할 수있음
struct [구조체이름]{
자료형 맴버이름1;
자료형 맴버이름2;
...
}구조체 별칭;
//예시
struct s_member { //구조체 이름 : s_member
char number[10]; //구조체 맴버1
char name[20]; //구조체 맴버2
int age; // 구조체 맴버3
} t_member;
struct s_memeber [변수 이름]이 아닌, t_memeber [변수이름]으로 사용가능
구조체 포인터
선언 방법)
1. struct
키워드로 정의 했을때
struct 키워드와 구조체 이름을 사용하여 구조체 포인터를 선언한다.
malloc을 해줄 때 struct와 구조체 이름을 함께 써줘야 한다는 것을 명심해야한다.
struct member *m1 = malloc(sizeof(struct s_member));
2. typedef
키워드로 정의했을때
별칭이름을 사용하여 구조체 포인터를 선언한다.
t_member *m1 = malloc(sizeof(t_member));
주의할 점은 포인터 변수니까 다른 자료형과 마찬가지로 *(애스터리스크)를 붙여준다.
사용방법)
구조체 포인터
의 맴버
에 접근할 때에는 화살표 연산자: (→)
를 사용해야한다
//struct 키워드 , typedef 키워드 모두 사용방법은 동일
struct s_member {
char number[10];
char name[20];
int age;
} t_member;
int main(void)
{
t_member m1 = malloc(sizeof(t_member));
strcpy(m1 -> number, "20201234");
strcpy(m1 -> name, "홍길동");
m1 -> age = 20;
free(m1);
return (0);
}
참고)
구조체 맴버에 접근할때는 . (온점)을 이용하여 접근했다.
하지만, 구조체 포인터의 맴버에 접근할때는 화살표연산자를 사용한다.
구조체 포인터에서 맴버에 접근할때 온점을 사용하고 싶다면 괄호와 역참조를 사용해줘야된다.
m1 -> age; //화살표 연산자로 맴버에 접근
(*m1).age; //구조체 포인터를 역참조한 뒤, 온점(.)으로 맴버에 접근
참고링크)
구조체 정리
1. 구조체 목적 구조체는 관련 정보를 하나의 의미로 묶을 때 사용한다. 2. 구조체 사용 방법 (기본) (1) 구조체 정의 및 변수 선언 구조체는 아래처럼 struct 키워드로 정의한다. struct [구조체이름] {
mong9data.tistory.com
'C' 카테고리의 다른 글
C - 컴파일 과정(전처리, 컴파일, 어셈블, 링크) (0) | 2020.10.18 |
---|