Dieser Teil meines Codes funktioniert einwandfrei:
#include <stdio.h>
int main(){
//char somestring[3] = "abc";
int i, j;
int count = 5;
for((i=0) && (j=0); count > 0; i++ && j++){
printf("i = %d and j = %d\n", i, j);
count--;
}
return 0;
}
Die Ausgabe erfolgt wie erwartet:
i : 0 and j : 0
i : 1 and j : 1
i : 2 and j : 2
i : 3 and j : 3
i : 4 and j : 4
Die Dinge werden seltsam, wenn ich die Deklaration der Zeichenkette in der ersten Zeile des Funktionskörpers auskommentiere.
#include <stdio.h>
int main(){
char somestring[3] = "abc";
...
}
Das Ergebnis:
i : 0 and j : 4195392
i : 1 and j : 4195393
i : 2 and j : 4195394
i : 3 and j : 4195395
i : 4 and j : 4195396
Was ist die Logik dahinter? Ich bin mit gcc 4.4.1 auf Ubuntu 9.10.