배열

CJB_ny·2022년 8월 3일
0

C++ 정리

목록 보기
36/95
post-thumbnail
post-custom-banner

배열의 이름은 == 배열의 시작주소이다.

StatInfo monster[10];

이렇게 선언해주도록 하자.


struct Info
{
	int hp = 10;
	int attack = 20;
};

int main()
{
	Info infos[10];

	return 0;
}

이렇게하면

배열의 이름을 입력해서 메모리 가보면 이렇게 값들이 10개로 다 들어가있는거 확인 가능하다.

배열의 크기는 상수 이어야한다.

VC 컴파일 기준임.

배열끼리의 '=' 연산자

StatInfo players[10];

StatInfo monsters[10];

players = monsters; // 이거 안된다.

왜? =>

auto WhoAmI = monsters;

// auto -> C++11 부터 등장함.

조커 카드 느낌으로 뒤에 변수에 따라 변한다.

(C#으로 치면 var과 같나?)

배열의 이름은 뭔가?

StatInfo의 포인터이다.

배열 -> 주소 연산 -> 참조로 가지고오기

StatInfo의 2번째 인덱스에 +2 로 접근하여

2번째 인덱스의 이름을 monster_2로 가지고온다.

StatInfo& mopnster_2 = (monster + 2) // 이렇게만 해주면 안되고

// 참조를 하는 것이기 때문에 

StatInfo& mopnster_2 = *(monster + 2) 
// 이렇게 (monster + 2)의 원본에 접근 하라는 의미에서
// *(monster + 2)별을 붙여서 참조로 할당해준다.

주의 ❗

완전 다른 의미이다.

StatInfo& monster_2 = *(monster + 2);
// 이거랑

StatInfo temp = *(monster + 2);
// 이거랑 완전 다른 의미이다.

밑에꺼는 값만 복사를 하는 것.

위와 아래의 차이점을 반드시 숙지를 해야한다.

자동화

이렇게하고 메모리를보면은

잘 들어감!

배열 초기화

int num[10];

어떠한 값도 없는 의미에서 ccccc로 밀어줌.

profile
https://cjbworld.tistory.com/ <- 이사중
post-custom-banner

0개의 댓글