구조체 (struct)

킴스코딩클럽·2022년 9월 21일
1

CS기초 시리즈

목록 보기
12/71

연관된 변수들을 하나로 묶어서 새로운 타입을 만들어내는 것
서로 다른 타입들을 하나로 묶는 것도 가능함
게임에서 구조체를 사용하기도 함

{
	체력
	마력
	공격력
	방어력
}
아이템 
{
	이름
	가격
	레어도
}
수강생
{
	이름
	나이
	전화번호
	이메일
}

구조체 사용법

struct 타입이름
{
	타입  멤버 변수명;
	타입  멤버 변수명;
}


.(dot operator) // 접근가능한 변수가 나옴


struct Status // 쓰던 변수들을 하나로 묶어서 새로운 타입으로 만들어냄
	{
		int hp;
		int mp;
		int strength;
		int magic;
	};

Status warrior;

warrior.hp = 100;//.찍으면 접근 가능한 변수가 나옴 
	// 구조체.멤버의 형태 
	//워리어 라는 구조체에 hp멤버에 100을 대입함 
	// 연산자 우선순위 . 다음에 =(대입)
warrior = 100; // 불가능함 
}

//선언
Status warrior;
//정의
warrior.hp = 100;
warrior.mp = 0;
warrior.strength =10;
warrior.magic = 0;

// 초기화
Status warrior{100,0,10,0};

//출력
std::cout<<warrior.hp<<std::endl;
std::cout<<warrior.mp<<std::endl;
std::cout<<warrior.strength<<std::endl;
std::cout<<warrior.magic<<std::endl;

// 값이 안주어지면 기본값으로 초기화됨
Status warrior{100,0 };

유니폼 초기화 식
int x{}; //  0으로 초기화됨
// 실수도 막고 타입도 알려주고 0으로 초기화되서 안전함
struct Status 
	{
		int hp{};   //멤버 초기화-안전한 방법 유니폼 초기화를 쓰는게 좋음
		int mp{};   //하지만 마지막에 유니폼 초기화 하나만 쓰는게 편함
		int strength{};
		int magic{};
	};
Status warrior{100,0,10,0}; //마지막으로 입력한 값이 들어가게 됨

warrior = Status {10,0}; 
// 명시적 형변환 Status가 바꿀 타입 ( )는 안됨\

warrior.hp = 10;
warrior.mp = 0;
warrior = {}; //0을로 초기화됨

구조체 끼리는 형 변환이 불가능
profile
공부 기록용

0개의 댓글