인프런 커뮤니티 질문&답변

Hyeonjun Yun님의 프로필 이미지
Hyeonjun Yun

작성한 질문수

홍정모의 따라하며 배우는 C언어

10.14 2차원 배열과 포인터

12분 30초쯤 질문입니다

작성

·

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 👉 (배열 이름 = 배열 이름의 주소)

Hyeonjun Yun님의 프로필 이미지
Hyeonjun Yun

작성한 질문수

질문하기