작성
·
199
0
float arr2d[2][4] = { {1.0f, 2.0f, 3.0f, 4.0f}, {5.0f, 6.0f, 7.0f, 8.0f} };
float (*pa)[4]; // a SINGLE pointer to an array of 4 floats
pa = arr2d;
위에서 pa는 an array of 4 floats를 가리키는 pointer라고 했는데
그러면 pa=arr2d[0]; 이 되어야 하는 건 아닌가요?
pa가 어떻게 2d array인 arr2d를 가리킬 수 있게 되는지 궁금합니다.
답변 1
1
안녕하세요~
pa = arr2d;
pa=arr2d[0];
모두 가능합니다.
arr2d 👉 첫번째 원소 (float[4]) 의 주소 = float[4] 값 (배열 이름은 배열 이름의 주소와 같죠. arr =&arr)
arr2d[0] 👉 float[4] 값
pa = &arr2d[0] = arr2d[0] = arr2d 👉 (배열 이름 = 배열 이름의 주소)