728x90
728x90
커뮤니티_모각코 (모여서, 각자, 코딩) 활동을 하면서 배운 내용을 되새기며 쓴 글입니다.
코딩을 배우고 싶다면 코뮤니티 활동을 적극 추천합니다.
https://cafe.naver.com/codeuniv
C언어에서 구조체란?
구조화 (의미가 연결된 조직) 된 데이터를 처리하는 방식을 말합니다.
구조체는 사용자가 직접 만들어 사용하는 자료형입니다.
배열이 같은 타입의 집합이라면, 구조체는 다른 타입(자료형)의 집합이라고 생각하면 됩니다.
struct
struct 사용하는 방식
struct 구조체이름
{
자료형 멤버변수이름a;
자료형 멤버변수이름b;
};
// 선언시 초기화
struct 구조체이름 변수이름 = {변수값1, 변수값2, ....};
// 선언후 값 할당
struct 구조체이름 변수이름;
변수이름.멤버변수이름a = 변수값1;
변수이름.멤버변수이름b = 변수값2;
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
struct Person
{
char name[10];
char id[20];
int age;
};
int main(void)
{
struct Person person;
printf("이름: ");
scanf("%s", person.name);
printf("학번: ");
scanf("%s", person.id);
printf("나이: ");
scanf("%d", &person.age);
printf("%s씨는 %d세 이고, 학번은 %s 입니다.", person.name, person.age, person.id);
return 0;
}
typedef
struct처럼 복잡한 자료 구조를 선언하는 문을 좀더 단순하게 만들기위해
typedef로 구조체를 정의하고, 별칭을 지정합니다.
typedef 사용하는 방식
//typedef struct 구조체이름 { 자료형 멤버변수이름1; 자료형 멤버변수이름2; } 구조체별칭;
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
typedef struct _Person
{
char name[10];
char id[20];
int age;
} Person ;
int main(void)
{
Person person;
printf("이름: ");
scanf("%s", person.name);
printf("학번: ");
scanf("%s", person.id);
printf("나이: ");
scanf("%d", &person.age);
printf("%s씨는 %d세 이고, 학번은 %s 입니다.", person.name, person.age, person.id);
return 0;
}
practice
학생 정보 입력 받기
사용자로부터 학생의 이름, 나이, 학년, 수학, 영어, 국어 점수를 입력받고
이를 평균과 함께 출력하는 프로그램을 작성하세요.
마무리
"구조체"
웹사이트에 회원 가입 시 적는 항목들 같다는 생각이 듭니다.
그 항목들을 구조체 형식으로 관리하는 게 아닐까...
어디에 쓰이는지 찾아보는 게 도움 될 것 같습니다.
'C_ language > C언어 심화_모각코' 카테고리의 다른 글
C언어_심화_동적 메모리 할당 (0) | 2022.06.17 |
---|---|
C언어_심화_함수 포인터 (0) | 2022.06.09 |
C언어_심화_2차원 배열과 이중포인터 (0) | 2022.05.26 |
C언어_심화_이중 포인터 (0) | 2022.05.10 |
C언어_심화_2차원 배열 (0) | 2022.05.06 |
댓글