using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 배열
// 같은 데이터형 변수들의 집합
public class Test_2 : MonoBehaviour
{
// 유니티에서 배열을 멤버 변수로 사용하는 2가지 방법
int[] m_Crr = new int[5]; // 멤버 배열 변수 1번째 사용 예
public int[] Brr; // 멤버 배열 변수 2번째 사용 예
// Value Type의 변수 : int. float, double, ..., struct(구조체) 객체
// Reference Type의 변수 : 배열, class 객체
// Start is called before the first frame update
void Start()
{
//int AA1 = 0;
//int AA2 = 0;
//int AA3 = 0;
//int[] arr = new int[100]; // C# 배열 변수 선언
//int[] arr = new int[5];
//arr[0] = 10;
//arr[1] = 11;
//arr[2] = 22;
//arr[3] = 33;
//arr[4] = 44;
////arr[5] = 55; // 잠재적 에러의 원인
//for(int ii = 0; ii < 5; ii++)
//{
// Debug.Log(arr[ii]);
//}
//Debug.Log("arr 크기 : " + arr.Length);
//// 멤버 배열 변수 1번째 방법
//m_Crr[0] = 11;
//m_Crr[1] = 12;
//m_Crr[2] = 13;
//m_Crr[3] = 14;
//m_Crr[4] = 15;
//for (int ii = 0; ii < m_Crr.Length; ii++)
//{
// Debug.Log("m_Crr[" + ii + "] : " + m_Crr[ii]);
//}
//// 멤버 배열 변수 2번째 방법
//for (int ii = 0; ii < Brr.Length; ii++)
//{
// Debug.Log("Brr [" + ii + "] : " + Brr[ii]);
//}
//float[] fArr = new float[3];
//fArr[0] = 1.34f;
//fArr[1] = 1.234234234f;
//fArr[2] = 342.3f;
//for(int ii = 0; ii < fArr.Length; ii++)
//{
// Debug.Log("fArr[" + ii + "]" + fArr[ii]);
//}
//// 명시적 선언
//int[] a_AAA = new int[10];
//for(int ii = 0; ii < a_AAA.Length; ii++) // 유니티에선 배열을 선언 후 초기값을 주지 않으면 0으로 초기화 한다.
//{
// Debug.Log(a_AAA[ii]);
//}
//int[] a_BBB;
//a_BBB = new int[10];
//a_BBB[0] = 11;
//// 암시적 선언
//int[] a_CCC = { 10, 20, 30, 40, 50, 60 };
//for(int ii = 0; ii <a_CCC.Length; ii++)
//{
// Debug.Log("a_CCC [" + ii + "] : " + a_CCC[ii]);
//}
//int[] a_xxx;
//a_xxx= { 10, 11, 22, 33, 44};
// 암시적 선언은 선언과 동시에 초기화 해야 한다.
//// 명시적 선언 + 암시적 선언
//int[] a_EEE = new int[] { 10, 20, 30, 40, 50, 60 };
//int[] a_FFF;
//a_FFF = new int[] { 10, 20, 30, 40, 50, 60 };
//for(int ii = 0; ii < a_FFF.Length; ii++)
//{
// Debug.Log(a_FFF[ii]);
//}
// C#에서 배열은 레퍼런스 타입이다.
int AAAA = 1000;
int BBBB = AAAA; // 일반변수들은 Value Type이다.
BBBB = 99;
Debug.Log("AAAA = " + AAAA + "\n BBBB = " + BBBB); //1000 , 99
int[] CCCC = { 1000 };
int[] DDDD = CCCC; // 배열변수는 Reference Type이다.
int[] EEEE = CCCC;
DDDD[0] = 99;
Debug.Log("cccc[0] : " + CCCC[0] + ", DDDD[0] : " + DDDD[0] + ", EEEE[0] : " + EEEE[0]); // 99, 99, 99
int[] ZZZ = new int[3];
ZZZ[0] = 10;
ZZZ[1] = 11;
ZZZ[2] = 22;
ZZZ = new int[5];
ZZZ[3] = 999;
ZZZ[4] = 9999;
for(int iii = 0; iii < ZZZ.Length; iii++)
{
Debug.Log("zzz [" + iii + "] : " + ZZZ[iii]);
}
}//void Start()
// Update is called once per frame
void Update()
{
}
}