int b[3][2] = { {0, 1}, {2, 3}, {4, 5} };
int (*bpp)[2] = b;
int *bp = b[0];
Au code ci-dessus: *bpp
est-il un pointeur sur un tableau à deux dimensions? Ou un tableau de pointeurs avec la longueur de 2? Pourquoi *bpp
est entouré de parenthèses? Y a-t-il une différence entre *bpp[2]
et (*bpp)[2]
?Tableau de pointeurs en C?
Pendant ce temps, dans le code suivant: (Changer la dimension du tableau)
int i[4] = { 1, 2, 3, 4 };
int (*ap)[2] = (int(*)[2])i;
La deuxième ligne est très déroutant pour moi, surtout le transtypage (int(*)[2])
, ce type de données est-il casting exactement?
Merci ^^