int[] n = { 1, 2, 3 };
이거는 되는데
int[] n;
n = { 1, 2, 3 };
은 왜 안됨?
int[] n = { 1, 2, 3 };이 가능한 이유는
컴파일러가 이 코드를 int[] n = new int[] { 1, 2, 3 };로 바꿔주어서
라고 생각되는데 n = { 1, 2, 3 };도 n = new int[] { 1, 2, 3};라고 바꿔주면 안 되나?
int[] n = { 1, 2, 3 };
이거는 되는데
int[] n;
n = { 1, 2, 3 };
은 왜 안됨?
int[] n = { 1, 2, 3 };이 가능한 이유는
컴파일러가 이 코드를 int[] n = new int[] { 1, 2, 3 };로 바꿔주어서
라고 생각되는데 n = { 1, 2, 3 };도 n = new int[] { 1, 2, 3};라고 바꿔주면 안 되나?
저러면 n 타입이 Array 가 아니라 int로 들어가서 못하는거지
아 오타임.
그냥 문법이라고 생각하면 될듯
나중에도 넣을수 있으면 타입추론 과정이 복잡해지니까 그런듯
그냥 포인터 아니라 C배열이라 생각하셈 n 여러번 재정의 하면 GC도 돌아야 하고 C문법 따라간다 생각하면 됨
메모리 할당이 안대서 그런거아닌가