티스토리 뷰

구조체

#구조체 이해

1. 구조체란?
- 사용자 정의 데이터 타입
- 관련있는 데이터를 묶어서 처리할 수있는 자료구조
- 서로 다른 데이터 타입의 묶음
- 서로다른 데이터 타입을 묶어서 처리할 수있도록 사용자가 정의하는 데이터 타입

2. 구조체 정의방법
- 구조체의 멤버로 일반 변수 뿐만 아니라 배열이나 포인터 선언 가능
- 구조체를 정의하면 새로운 데이터형이 만들어짐
- 구조체 정의 -> 메모리 할당의 의미는 아님
- 구조체형 변수 선언 -> 메모리에 할당

ex)
struct 구조체명 {
   데이터형 멤버명;
   데이터형 멤버명;
   .....
}

구조체의 크기는 모든 멤버들의 크기의 합보다 크거나 같음
구조체 멤버 중 가장 큰 멤버의 크기를 기준으로 멤버 할당
구조체의 크기를 구하려면 sizeof연산자를 이용함

3. 구조체 선언
struct 구조체명 변수명1, 변수명2 ....;
구조체 변수를 선언하면 구조체 변수가 가진 멤버들이 메모리에 선언된 순서대로 할당됨

구조체를 정의하면서 구조체 변수를 함께 선언할 수 있음
구조체를 정의하면서 변수를 함께 선언할 때는 태그명을 생략할 수 있음

# 구조체 처리

1. 초기화
선언시 초기화는 배열 초기화와 동일
{} 안에 멤버들의 초기값을 순서대로 나열
{} 안에 지정한 초기값이 멤베의 개수보다 부족하면 나머지 멤버들은 0으로 초기화
멤버 접근 연산자 "."을 이용한 초기화 가능

같은 구조체형의 변수들끼리는 서로 초기화나 대입이 가능함
구조체 간의 초기화 : 멤버 대 멤버 초기화
구조체 간의 대입 : 멤버 대 멤버 대입
2. 구조체 응용
1) 구조체 멤버
구조체를 다른 구조체의 멤버로 사용가능

2) 구조체 배열
구조체를 배열로 선언하는 것이 가능
구조체 배열을 초기화 하려면 {} 안에 배열 원소의 초기값을 나열

3) 구조체 포인터
구조체 포인터를 선언하는 것이 가능
구조체 포인터로 구조체의 멤버에 접근할 때는 "->" 간접 접근 연산자를 사용



'JAVA기반스마트웹개발2021 > 프로그래밍언어 활용' 카테고리의 다른 글

함수의 인자  (0) 2021.08.05
공용체와 열거체  (0) 2021.08.05
포인터와 문자열  (0) 2021.07.30
포인터 활용  (0) 2021.07.29
포인터  (0) 2021.07.29
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함