Warum funktioniert diese Verwendung von Komma in einem Ausdruck, schlägt aber in einer Deklaration fehl?
Ich komme aus den gehobenen OOP-Sprachen C # und Java und habe kürzlich angefangen, mich in C am Kopf zu kratzen. Ich fühle C ein bisschen seltsam, so wie man es von JS hält. Also unten klären wollen:
Below gibt einen Fehler aus und das scheint intuitiv zu sein, da es selbst in OOP-Sprachen nach falscher Syntax aussieht.
int i=0,1,2;
/*
Error : expected identifier or ‘(’ before numeric constant
int i = 0, 1, 2;
^
*/
Allerdings funktioniert unten überraschend:
int i;
i = 0,1,2; //works
Warum handelt es sich bei diesem Verhalten? Ist es für sie von Bedeutung, ein solches Verhalten beizubehalten, oder nur einige Analysetechniken?