Gültigkeitsbereich von Arrays????
-
Hie könnte mir jemand folgendes Programmbeispiel näher erklären?
Komm da nicht so druch/* array4.c */ #include <stdio.h> #include <stdlib.h> int wert_global[5]; int main(void) { static int wert_static[5]; int wert_auto[5]; int i; for(i = 0; i < 5; i++) printf("%d: \t%10d\t%10d\t%10d\n", i, wert_global[i], wert_static[i], wert_auto[i]); return EXIT_SUCCESS; }
Vielen dank schonmal für Antworten
-
Was soll man dir groß erklären, außer dass du die drei Arrays nicht initialisiert hast?
-
Vielleicht gerade, dass static und global automatisch initialisiert werden?
-
Ach, verdammt
-
int wert_global[5]; /* Hier wird ne Variable initralisiert ne? */ printf("%d: \t%10d\t%10d\t%10d\n", i, wert_global[i], wert_static[i], wert_auto[i]); /* Was wird hier gemacht? */
-
Hast du es mal ausprobiert?
Wie schon geschrieben, werden globale und statische Arrays mit Nullen initialisiert, wert_auto dagegegen nicht.
Durch printf erfolgt die Ausgabe, "%d" gibt an, dass ein Integer der variablen Argumentenliste von printf hinzugefügt wurde (liegt in der Verantwortung des Programmierers), '\t' fügt einen Tab zwischen den Ausgaben ein.
-
fgets (schluessel, 100, stdin); laesch=strlen(schluessel);
liefert wie üblich bei Anfängereingabeabfragen undefiniertes Verhalten, je nachdem, ob '\n' noch reingepasst hat oder nicht.
-
Also war i-wie bissel schwer von begriff das listing war eig. ja vom Aufbau her ganz leicht -.-
Aber folgendes wollte ich mal fragen:int wert_auto[5] = {0};
So hier weis ich ja ne Vraiable vom Typ int wird initiialisiert aber was genau bedeutet die {0}?
Also werden da alle Werte auf Nullgesetzt?i, wert_global[i], wert_static[i], wert_auto[i])
Hier wird ja dann grad der Wert den i gerade in der SChleife besitzt in [] gesetzt ne?
Sorry für die vielen Fragen,aber ich will ja verstehen was da abgeht in dem Programmm hehe^^
-
Hat sich geklärt closed
-
GhostfaceChilla schrieb:
closed
Und ich dachte immer, dass sowas semidemokratisch entschieden wird.