-

구조체

Patti Smith 2021. 11. 16.

구조체

: 서로 다른 자료형의 변수들을 하나로 묶어서 사용하는 기능 / 사용자가 정의하는 자료형

(<-> 배열: 같은 자료형의 변수들을 하나로 묶음)

 

구조체 정의

: 한 학생(성적, 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

댓글