#include <iostream>
using namespace std;
//배열
struct StatInfo
{
int hp;
int attack;
int defence;
};
int main()
{
//TYPE 이름[갯수];
//배열의 크기는 상수여야 함 (VC 컴파일러 기준)
const int monsterCount = 10;
StatInfo monsters[monsterCount];
StatInfo player[10];
//player=monster은 실행될 수 없다
//배열의 이름은 무엇을 의미하는가?
//배열의 이름은 배열의 시작 주소
//=> 배열의 이름은 배열의 시작 위치를 가리키는 TYPE* 포인터
//즉 포인터의 산술연산을 잘 활용하면 배열과 포인터 활용이 가능
StatInfo* monster_0 = monsters;
monster_0->hp = 0;
//포인터 산술연산을 이용한 배열 활용
StatInfo* monster_1 = monsters+1;
monster_1->hp = 10;
//레퍼런스를 이용한 배열 활용
StatInfo& monster_2 = *(monsters + 2);
monster_2.hp = 20;
//자동화하여 배열 초기화
for (int i = 0;i < monsterCount;i++)
{
StatInfo* monster_t = monsters + i;
monster_t->hp = 10+i;
//인덱스를 사용할 경우
cout << monsters[i].hp << endl;
}
//배열 선언->인덱스 접근
return 0;
}