Erreur de compilation gcc: cast spécifie le type de tableau

Le code suivant est parfait valide,

int *ia = (int[]){1,3,5,7};

mais quand je compile à la prochaine ligne de code,

char *p = (char[]) "abc";

gcc dit

test.c:87: error: cast specifies array type

Il semble qu'ils sont projetées de la même manière. Pourquoi le deuxième en un, obtenez un message d'erreur?


Que vous les gars a dit, "abc" est un pointeur, ce qui ne peut pas être converti en un pointeur. Donc, mon autre question: pourquoi ne

 char[] s = "abc";

est valide. Comment l'-dessus de la ligne de code lors de la compilation?

source d'informationauteur draw | 2010-08-06