[C언어] Struct ( 구조체 )
- 언어/C
- 2020. 11. 27.
Struct ( 구조체 )
- 사용자 정의 데이터 타입
- 기존데이터타입을 묶어서 새로운 타입 생성
- 선처리부에 등록 해야한다.
구조체 정의
struct Score
{
char name[10];
int kor,eng,mat,total;
float avg;
};
name(10 byte), kor,eng,mat,total,avg ( 20byte )총 30byte 크기의 Score라는 구조체 정의
구조체 별칭
typedef struct score {
char name[10];
int kor, eng, mat, total;
float avg;
}SCORE;
int main() {
//struct score student;
SCORE student;
}
구조체 맨앞에 typedef를 써주고 맨뒤에 정의하고싶은 이름을 쓰면 그 이름으로 정의할 수 있다.
ex) struct score student --> SCORE student
구조체 변수 선언
//Score라는 구조체에 접근할 수 있는 sc 변수 선언
struct Score sc;
sc.kor = 10; //sc뒤에 . 을 붙히고 변수명을 입력하여 접근이 가능하다.
&sc.kor //kor의 주소에 접근하려면 kor이아니고 sc앞에 &가 붙는다.
성적관리 ( 구조체 )
#include<stdio.h>
struct score { //구조체 정의
char name[10];
int kor, eng, mat, total;
float avg;
};
int main() {
struct score student;
//입력
printf("이름: ");
scanf("%s", student.name); //구조체의 주소에 접근
printf("국어: ");
scanf("%d", &student.kor);
printf("영어: ");
scanf("%d", &student.eng);
printf("수학: ");
scanf("%d", &student.mat);
student.total = (student.kor + student.eng + student.mat);
student.avg = student.total / 3;
//출력
printf("\n이름\t국어\t영어\t수학\t총점\t평균\n");
printf("%s\t", student.name);
printf("%d\t", student.kor);
printf("%d\t", student.eng);
printf("%d\t", student.mat);
printf("%d\t", student.total);
printf("%f\t", student.avg);
}
'언어 > C' 카테고리의 다른 글
[C언어] 문자열 특징 및 함수 (sizeof, strlen, strcpy, strcat ,strcmp ) (0) | 2020.11.27 |
---|---|
[C언어] Visual Studio 한 프로젝트에서 여러 main() 함수 사용하는 방법 (2) | 2020.11.23 |
[C언어] Visual Studio로 C언어 파일 생성 (0) | 2020.11.23 |
[C언어] C언어의 특징 (0) | 2020.11.23 |