C 와 C++ 의 2D 이상의 배열에서의 차이? C++ 에서 에러나는 이유?

as 76.***.204.204

int *p[3] = {a[0], a[1], a[2]}; —>; should be working. 컴파일 에러는 안나오지만 오리지널 배열과 다른 배열임.

a[0] ={10,20,30} = *&a[0]
a[1] ={40,50,60}
a[2] ={70,80,90}

a+0 = &a[0] 양변이 서로 동일한것을 표현한것임.
a+1 = &a[1]
a+2 = &a[2]

위에서 봣듯이
&a[0] 과 *&a[0] 은 서로 같은게 아님. 주소는 같긴 하지만.
결론적으로
int *p[3] = {a[0], a[1], a[2]}; 과 int *p[3] = {a+0, a+1, a+2}; 는 서로 다른 배열임. 둘다 문법적으로 틀린 정의는 아님.