구조체
: 서로 다른 자료형의 변수들을 하나로 묶어서 사용하는 기능 / 사용자가 정의하는 자료형
(<-> 배열: 같은 자료형의 변수들을 하나로 묶음)
구조체 정의
: 한 학생(성적, id) 의미적으로 다르지만 관련 돼 있음 (<-> 배열: 같은 의미)
구조체를 사용하기 전에 우선 정의하고 사용해야 함. 메모리를 차지하는 것은 아님. 이 구조체 타입으로 변수가 만들어져야 메모리가 잡히게 됨. 즉, 구조체는 하나의 자료형임
struct 태그이름(구조체 구분/식별) {
멤버 선언;
멤버 선언;
멤버 선언;
};
구조체 변수
: 구조체 변수 선언/ 메모리 잡힘
struct 태그이름 변수명;
구조체 변수 초기화
: 개별 멤버에 해당하는 값을 적어주면 초기화됨.
ex. struct student astudent = {200010, 100, 90};
.(dot)연산자
: 구조체 변수 멤버 각각에 접근
구조체변수명.멤버명
ex.1 : 구조체 멤버 각각에 값 설정
astudent.id=200010;
astudent.midterm = 100;
astudent.final = 90;
ex2. 구조체 멤버의 값 입력받음
우선순위: .(dot)연산자 > &(주소 연산자)
scanf("%d", &astudent.id);
scanf("%d", &astudent.midterm);
scanf("%d", &astudent.final);
ex.3 구조체 멤버의 값을 출력
printf("학번: %d 중간: %d 학기말: %d \n", astudent.id, astudent.midterm, astudent.final);
ex.4 중간고사와 학기말 성적을 더해 출력
printf("학번 %d의 총점은 %d이다", astudent.id, astudent.midterm + astudent.final);
주의: dot연산자 쓸 때 띄어쓰기하면 안됨
문자열 데이터에 문자열을 할당할 때 대입연산자로 넣을 수 없음.
구조체 배열
:
struct student sList[3];
sList[0].id
sList[0].midterm
sList[0].final
sList[1].id
sList[1].midterm
sList[1].final
sList[2].id
sList[2].midterm
sList[2].final
구조체 배열 초기화
: strct student sList[3] = { {10010,90,80}, {20012,80,70}, [30010,70,60} }
'-' 카테고리의 다른 글
파일 입출력 (0) | 2021.11.30 |
---|---|
c언어 구조체 고급 (0) | 2021.11.22 |
자바스크립트 - 연산자, 조건문 (0) | 2021.11.12 |
문자/문자열 처리함수 (0) | 2021.11.09 |
자바스크립트 (0) | 2021.11.01 |
댓글