int main()
{
float arr2d[3][4] = { { 1.0f, 2.0f, 3.0f, 4.0f } , { 5.0f, 6.0f, 7.0f, 8.0f} };
printf("%f %f ", arr2d[0][0], **arr2d);
return 0;
}
이게 진짜 좆도이해가안가요
이거때문에 지금 강의를 몇번을 다시본느건지 모르겠어요
arr2d는 주소니깐 첫번째집주소 이름이니깐
걔를 indierection 하면 1.0이 나오는건 이해가되는데
왜 2번해요 ?
2중포인터라서 ?
제가 3중포인터를 만들어봤는데 그때는 * 3개를 붙이니 오류가나요
그리고 * 1번만 해도 값이 제대로 나와요
ㅋㅋ 나는 알고있음
** 이중포인터라서 **하는거 맞음. arr[A][B] 이거랑 *(*(arr + A) + B) 이거랑 같은거임 arr[0][0]은 *(*(arr))이라 괄호벗겨서 **arr 인것임
* 한번만 해도 값 제대로 나온다고 본문에 적혀있는데 아닐거임. 별한번하면 arr[0][0]의 값이 아닌 주소가 출력됨.
넴 조오금 이해가됬어요 . 이거 생각한다고 엄청 오래걸렸네여
3중포인터에 *3개 붙이는것도 맞음. 본문에는 3개하니 에러낫다고 적혀있는데 아님. 3중포인터는 별세개 맞음. 다시해보삼
빨아봐
arr2d = float** (포인터) arr2d[n] = float* (포인터) arr2d[n][m] = float (값) arr2d = float** *arr2d = float* **arr2d = float
배열의 인덱스[]랑 포인터 + 정수 찾아보셈.