반응형
구조체 정의
//선언하기
struct 구조체이름{
자료형 멤버이름;
};
//변수 선언하기
struct 구조체이름 변수이름;
위와 같이 구조체를 선언하는 것이 기본입니다.
익명 구조체 (typedef)
개발자님들께서 변수 'struct 구조체 이름'으로 일일이 변수를 만드는 것이 불편해서 익명 구조체를 만들었습니다.
//선언하기
typedef struct _구조체 이름{
자료형 멤버이름;
} 구조체 별칭;
//변수 선언하기
구조체별칭 변수이름;
typedef를 사용해 익명 구조체를 만듭니다.
이때 '_구조체 이름'과 '구조체 별칭'이름이 같아도 무관합니다.
이렇게 하면 변수를 선언할 때 'struct 구조체 이름'으로 선언하지 않고 '구조체별칭'으로 구조체를 선언할 수 있게 됩니다.
Person 구조체 사용하기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h> //strcpy 함수가 선언된 헤더 파일
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);
return 0;
}
Person이라는 구조체를 임의로 만들었습니다.
위에서 설명드린 것과 같이 'struct Person p1;'으로 p1이라는 변수를 선언했습니다.
p1.name, p1.address, p1.age에 값을 할당해 줍니다.
strcpy에 대해 간단하게 설명해 드리겠습니다.
strcpy(s1, s2)는 s1에 s2를 복사하여 붙여 넣는 함수입니다. 이때 return값은 s1입니다.
Person 익명 구조체 사용하기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h> //strcpy 함수가 선언된 헤더 파일
typedef struct _Person {
char name[20];
int age;
char address[100];
} Person;
int main()
{
Person p1; //구조체 별칭 Person으로 변수 선언
strcpy(p1.name, "홍길동");
p1.age = 20;
strcpy(p1.address, "서울시 용산구 한남동");
//점으로 구 조체 멤버에 접근하여 값 출력
printf("이름: %s\n", p1.name);
printf("나이: %d\n", p1.age);
printf("주소: %s\n", p1.address);
return 0;
}
위의 예제인 'Person 구조체 사용하기'와 거의 유사합니다.
차이점은 이번에는 typedef를 이용하여 익명구조체를 사용한 것입니다.
반응형
'Language > C언어' 카테고리의 다른 글
C014_구조체 정렬하기 (0) | 2023.09.16 |
---|---|
C013_구조체 포인터 사용하기 (0) | 2023.09.15 |
C011_배열 사용하기 (0) | 2023.09.13 |
C010_malloc사용하기 (0) | 2023.09.12 |
C009_포인터에 대해(간단히) (0) | 2023.09.11 |