Hier ist der Code:Pointers in C mit Arrays
#include <stdio.h>
int main()
{
int c[4][4] = {{0,1,2,3},{4,5,6,7},{8,9,10,11},{12,13,14,15}};
int (*p)[3] = (int(*)[3])(c+2);
return 0;
}
Seine interessant, dass es p sein setzt: {{8,9,10}, {11,12,13}, {14, 15, -8224}}
Ich verstehe nicht, was passiert, vor allem in der 6. Zeile des Codes. Bitte hilf mir!
Gibt es einen Grund, warum Sie verstehen müssen, was in einem Codeabschnitt passiert, der nichts tut und so geschrieben ist, dass niemand Code schreiben sollte? –
'(int (*) [3])' ist ein * Cast *, zu einem Zeiger auf ein Array von drei ganzen Zahlen. Der Ausdruck "c + 2" ist gleich "& c [2]", was ein Zeiger auf das dritte Element von "c" ist. –
Ja, ich muss es wissen, denn überraschenderweise setzt p {{8,9,10}, {11, 12, 13}, {14,15,0}}. – Debdut