Strings und Array's

tomate

Erfahrenes Mitglied
Hallo,

kann mir bitte jemand erklären, warum das eine geht und das andere nicht?

Geht:
Code:
char *string;
string = "Hallo Welt";
printf("%s",string);

Geht nicht:
Code:
char string[30];
string = "Hallo Welt";
printf("%s",string);

Geht auch:
Code:
char string[30]="Hallo Welt";
printf("%s",string);

Grüße & Danke, Tomate
 
Du musst Dir dafür den Unterschied zwischen char[] und char* klarmachen!
http://stackoverflow.com/questions/1704407/what-is-the-difference-between-char-s-and-char-s-in-c

Zudem sind Deine letzten beiden Varianten eh' identisch !!
C++:
int i;
i = 5;
// ist das gleiche wie 
int i = 5;
Für primitive Datentypen ja. Aber bei Arrays funktioniert eine Zuweisung nicht, d.h. die beiden Varianten sind nicht identisch.

Ausserdem fehlt das const (Stringliterale sind konstant).
C++:
const char* str = "...";

Und ein weiterer Unterschied: das Array ist wirklich 30 Zeichen lang und ist mit dem hineinkopierten 11 Zeichen aus dem Stringliteral initialisiert worden.
 
Zurück