알버트의 개발하는 블로그
C 언어 / C++ 언어 제18강 구조체(struct)와 구조체 변수 본문
이번 시간에는 c언어에서 제공하고 있는 구조체와 구조체의 변수에 대해서 간단히 배워보겠습니다.
구조체란?
우리가 프로그램에서 실제 처리할 데이터는 대부분 하나의 자료형으로 구성되지 않습니다. 여러 가지 자료형으로 자료를 받아야 하는 경우가 많이 있는데요. 구조체란 이처럼 여러 자료형을 받기 위해서 만들어진 하나의 자료형이라고 보시면 됩니다. 즉, 구조체란 여러 자료형을 묶어서 프로그램에서 사용할 새로운 자료형을 만드는 것을 말합니다. 사용자가 정의해서 쓰기 때문에 사용자 정의 자료형이라고도 부릅니다.
구조체를 선언하는 방법은
struct 구조체이름{ 구조체 멤버 변수(필드); ...; };
이렇게 선언해주시면 하나의 구조체를 만들 수 있습니다. 구조체이름의 첫글자는 보통 대문자로 선언해주는게 관례입니다. 그리고 중괄호 안에서 구조체 멤버 변수를 원하는 만큼 선언하고 사용해줄 수 있습니다.
구조체 예제
이제 한번 실제적으로 구조체를 선언하고 구조체 안의 변수들을 어떻게 처리해야 하는지 보겠습니다.
대표사진 삭제
사진 설명을 입력하세요.
이처럼 구조체를 선언하고 구조체의 변수에 접근해서 출력해 줄 수 있습니다.
구조체 Score을 선언하고 중괄호 안에는 각각 다른 자료형의 변수들을 선언해주었습니다.
그리고 나서 이 Score이란 구조체를 이용해서 구조체 변수를 선언하고 사용해 줄 수 있습니다.
구조체변수 안에 있는 변수에 접근할 수 있는 방법은 3가지가 있습니다.
첫번째 방법은, 구조체변수 뒤에 '.'을 붙이고 변수를 적는 방법입니다. 위 코딩에서는 score1.number = 1; 이렇게 선언하고 변수를 저장했습니다.
두번째 방법은, 구조체변수를 선언하는 동시에 초기화해주는 방법인데요. Score score2 = {...}; 이런 방식으로 사용됐습니다. 위에서는 5개를 저장해서 상위 5개의 변수에 저장되었음을 알 수 있습니다.
세번째 방법은, 구조체 포인터 변수를 이용해서 변수에 접근하는 방법입니다. Score *pScore = &score1; 이렇게 선언해주었습니다. score1의 주소가 pScore에 저장되었습니다. 그리고 이 포인터변수를 통해서 접근하는데, 이건 포인터변수이기 때문에 '.'을 붙이지 않고 '->' 이 기호를 붙여줘야 한답니다.
이렇게 세가지 방법으로 구조체변수 안에 있는 변수에 접근할 수가 있습니다. 구조체와 구조체 변수는 실제 우리 프로그래밍에서 많이 쓰이는 부분이기 때문에 잘 익혀두어야 합니다. 읽어주셔서 감사합니다~
'프로그래밍 언어 > C & C++' 카테고리의 다른 글
C 언어 / C++ 언어 제20강 클래스(class)와 클래스 멤버 함수, 접근 권한 지정자 개념 익히기 (0) | 2021.04.30 |
---|---|
C 언어 / C++ 언어 제19강 메모리 동적 할당 이용하여 숫자 입력받고 평균 구하기 (0) | 2021.04.30 |
C 언어 / C++ 언어 제17강 포인터 개념 익히기 (주소값 저장하는 변수 포인터) (0) | 2021.04.30 |
C 언어 / C++ 언어 제16강 메모리 동적 할당으로 이차원 배열 만들기 (0) | 2021.04.29 |
C 언어 / C++ 언어 제15강 자연수를 입력받아 약수 찾기 (for 반복문, 연산자) (0) | 2021.04.29 |