#include<stdio.h>
int main()
{
char str[25] = "Hello World";
printf("%s\n", &str+2);
printf("%p\n",&str);
printf("%p\n",&str+2);
return 0;
}
Das Programm oben blinkt einen Fehler für Zeile 6 Spruch:Unterschied zwischen char * und char (*) [25]
warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[25]’ [-Wformat=]
Ich frage mich, was ist der Unterschied zwischen diesen beiden. Und der Ausgang zeigt immer zwei Adressen mit einer Differenz von 32 Bytes. Ich habe eine Ausgabe mit einer Differenz von 2 erwartet, während ich versuche, die Adresse str
und die Adresse str
+2 zu drucken. Können Sie erklären?
entfernen '&' ..... –
yeah! Ein kleines Suchen hat mir das gesagt. Aber was ist der Fehler in dem Programm? –
10 ein Einblick: http://stackoverflow.com/questions/15177420/what-does-sizeofarray-return/15177499#15177499 –