Sind mehrere Bedingungen erlaubt, in einer for-Schleife?

Den folgenden code läuft ohne Fehler oder Warnungen

#include<stdio.h>

int main(){
    int i, j;
    int p = 0, q = 2;
    for(i = 0, j = 0; i < p, j < q; i++, j++){
      printf("HelloWorld\n");
    }
    return 0;
}

Doch das Buch Lassen Sie Uns C(Yashwant Kanetkar) sagt, dass nur ein Ausdruck erlaubt ist in der test-Ausdruck einer for-Schleife.(siehe S. 115 im Buch).

Ich bin nicht sicher, ob der standard. Sind mehrere Ausdrücke dürfen in der test-Ausdruck einer for-Schleife ?

EDIT : ich sicher können sich die beiden Ausdrücke aber ich war sprachlos, als ich gefunden der obige code auf dieser website . Meine Frage ist, das diese die gültigen C-code oder nicht?

  • ja, ich kann sicherlich, aber ich war sprachlos, als ich gefunden der obige code auf der Webseite ein : geeksforgeeks.org/output-of-c-program-set-22
  • C-Normen sind anders z.B. C89 und C99. Daneben gibt es Unterschiede in verschiedenen Implementierungen der Sprache C Compiler. Ihr code korrekt ist.
  • dieser code ist korrekt - einen comma operator, wertet seinen Operanden und das Ergebnis ist der Letzte operand. z.B. int a = 1,2; //here a = 2
  • Ich schlage vor, Sie Lesen Sie nicht Lassen Sie Uns C, haben einen Blick auf dieses The Definitive C-Buch Leitfaden und Liste
  • Aktivieren Sie alle Warnungen. gcc mit -Wall warnt vor dieser.
  • Sie haben keinen Grund, wurden, wie vom donner gerührt in Bezug auf das code-snippet, das Sie gefunden haben, noch zu haben geschrieben über es hier. Alles, was Sie zu tun hatte, ist die Mühe, zu Lesen, über die code auf dieser Seite... besonders die Beschreibung des Kodex, die lautet: Wenn zwei Ausdrücke sind getrennt durch den Komma-operator, der erste Ausdruck (i < p) zuerst ausgeführt. Ergebnis des ersten Ausdrucks wird ignoriert.

InformationsquelleAutor Nikunj Banka | 2013-07-14
Schreibe einen Kommentar