Rick York
Я думаю, что будет лучше, если вы сами разберетесь в этом, но я дам вам подсказку. Во-первых, подумайте об этом как о математической задаче :
16 = * * (*arr+1)+2+7
Вы можете вычесть 9 с обеих сторон и получить :
16-9 = * * (*arr+1)+2+7-9
7 = **(*arr+1)
Это означает, что выражение приводит к значению 7, и вы можете видеть, где находится 7 в массиве. Следующий вопрос: как это выражение приводит к 7?
Из объявления вы можете видеть, что это трехмерный массив. Звездочки в этом контексте являются разыменованиями указателей, а массивы по существу являются указателями, когда с ними не используются скобки.
Еще одна вещь, это может помочь переписать объявление и выражение инициализации, чтобы лучше проиллюстрировать организацию.
int arr[2][3][2]=
{
{ // 1st dim [0]
{ // 2nd dim [0]
2, // 3rd dim [0], item [0][0][0]
4 // 3rd dim [1], item [0][0][1]
},
{ // 2nd dim [1]
7, // 3rd dim [0], item [0][1][0]
8 // 3rd dim [1], item [0][1][1]
},
{ // 2nd dim [2]
3, // 3rd dim [0], item [0][2][0]
4 // 3rd dim [1], item [0][2][1]
},
},
{{2,2},{2,3},{3,4}, }
};
На данный момент я надеюсь, что у вас есть достаточно, чтобы экстраполировать ответ.