C,C++

구조체 선언과 이용, 초기화

2021. 11. 11. 16:46
목차
  1. 구조체는 왜 사용하는가?
  2. 구조체 선언과 이용 
  3. typedef 
  4. 구조체 초기화 
728x90

구조체는 왜 사용하는가?

코드를 짜게 될때 지금까지 우리가 아는 상식으론 여러 정보를 입력받고 싶다면 받고싶은 정보마다 배열을 짜야합니다. 이럴경우 변수도 너무 많이 선언해야하고 메모리도 너무 많이 차지하게 됩니다. 따라서 이런 문제를 해결하고자 구조체를 이용합니다. 

구조체 선언과 이용 

구조체 선언 예시

구조체는 위의 코드 사진처럼

struct 구조체 이름 {
안의 인자값;
안의 인자값;
};

이런 형식으로 선언하게 된다. 또한 사용할때는 

구조체 사용 예시

위의 사진처럼 선언해줄때처럼 struct 구조체 이름을 쓴 후 사용할 구조체 변수를 써준다. 또한 안의 구조체 인자값에 접근하기 위해 '.' 을 사용해준다. 포인터 변수도 선언해줄 수 있는데 그것은 다음에 다루도록 하겠다. 

struct 선언해준 구조체 이름 구조체 변수 이름;
구조체 변수.접근할 인자값;

typedef 

위에서 구조체의 선언법을 알아봤는데 선언해줄때마다 [struct 구조체명 변수명] 형식을 치기엔 너무 귀찮다고 표현할 수 있겠습니다. 이를 해결하기위해 있는것이 typedef 입니다. typedef 를 이용하면 새로운 구조체 별명같은걸 정해주고 앞으로 변수를 선언할때 struct 를 매번 써주는 번거로운 일을 하지 않아도 됩니다. 

typedef 를 이용한 구조체 선언

typedef struct 구조체명{
인자값;
인자값;} 구조체별명;

이런 구조로 선언해주게 되며 변수선언을 해주게 될때 구조체 별명을 이용해서 선언해주게 되면 됩니다. 

typedef를 이용한 구조체의 변수 선언

구조체 초기화 

앞에서 말했듯이 구조체는 '.' 을 이용해서 하나하나 접근하면서 값을 초기화 해줄 수 있습니다. 하지만 또 다른 방법으로는 한번에 구조체의 모든 값들을 줄 수 있는 방법이 있습니다.

typedef struct Aclass {
	int age;
	char name;
	int birth;
}classname;

이런 구조체가 있다고 했을때 밑의 방식으로 선언해줄 수 있습니다. 이렇게 선언해주게 되면 차례대로 110 이 age에 들어가고 name 에 B 가 들어가고 birth 에 20050407 이 들어가게 됩니다. 

classname sum;
	sum = { 110,'B', 20050407 };
    
    printf("%d %c %d", sum.age, sum.name, sum.birth);

위의 구조체의 값을 불러왔을때 

또한 여기서 알아놓을 것이 있는데 구조체는 구조체 변수를 선언해주어 초기화를 해주기 전까지는 메모리 할당을 하지 않습니다 .

저작자표시 (새창열림)

'C,C++' 카테고리의 다른 글

도난 경보장치(아두이노 프로젝트 기록)  (0) 2021.12.30
2167번 2차원 배열의 합  (0) 2021.07.21
11047번 동전0  (0) 2021.06.19
10773번 제로 C  (0) 2021.06.15
풀어보려 시도 해본 문제들 (백준 : 1009번, 14647번, 2136번)  (0) 2021.06.09
  1. 구조체는 왜 사용하는가?
  2. 구조체 선언과 이용 
  3. typedef 
  4. 구조체 초기화 
'C,C++' 카테고리의 다른 글
  • 도난 경보장치(아두이노 프로젝트 기록)
  • 2167번 2차원 배열의 합
  • 11047번 동전0
  • 10773번 제로 C
코춘대길
코춘대길
우리의 인생은 우리가 노력한 만큼 가치가 있다. 2021~2023 고등학생, 2024 ~ Technical Architect 2025~2027 육군정보보호병
코춘대길
무지성 컴퓨터 성장일기
코춘대길
전체
오늘
어제
  • 분류 전체보기 (163)
    • 수상 실적 (8)
    • 네트워크 (133)
      • 보안 (3)
      • 서버 (20)
      • 클라우드 컴퓨팅 (25)
      • 네트워크 일반 (76)
      • 무선 네트워크 (3)
      • 네트워크 가상화, 자동화 (5)
      • 통신 설비 (0)
    • 정보보안산업기사 (0)
    • 시스템 (5)
    • Web (6)
    • C,C++ (8)
    • 사무 (2)
      • 엑셀,파워포인트 (2)
    • 일상 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 컨테이너
  • alb
  • flooding
  • 클라우드 컴퓨팅
  • 도커
  • 실장비
  • System manager
  • 동적라우팅
  • vmnet
  • 토폴로지
  • AWS
  • 실장비 초기화
  • cisco nat
  • 네트워크 보안
  • 컨테이너 오케스트레이션 툴
  • CISCO
  • Session Manager
  • 실행주기
  • 개어려움
  • syn flooding

최근 댓글

최근 글

hELLO · Designed By 정상우.
코춘대길
구조체 선언과 이용, 초기화
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.