2017-03-04 6 views
1

Ich bin mir nicht sicher, was in dieser Codezeile diesen Fehler verursachtFehler: erwartete Ausdruck vor ‚%‘ Token

printf(%d=12 * %d + %d "\n", a, &b, &c); } 

Die Fehlerzustände „erwartet Ausdruck vor‚%‘Token“ aber ich bin nicht sicher, auf welche der String-Darstellungen oder "%" es sich bezieht.

+0

Wenn Sie auf SO veröffentlichen, können Sie sehen, dass der Code falsch ist: Die Formatzeichenfolge ist zweifarbig. –

Antwort

0

Falsche doppelte Anführungszeichen. Es gibt keine Formatzeichenfolge, da das erste Zeichen nach ( nicht ", sondern % ist.

printf("%d=12 * %d + %d\n", a, b, c); 

Wie BLUPIXY Recht ausführt, sollten Sie auch Druck Adressen vermeiden &b, &c als ganze Zahlen mit %d. Wenn Sie wirklich Adressen drucken möchten, müssen Sie %p mit ptr-to-Lücke, das heißt diese verwenden:

printf("%d=12 * %p + %p\n", a, (void *)&b, (void *)&c); 

Es wäre hilfreich, die Erklärungen für a, b und c zu sehen.

+2

vielleicht, Entfernen '&' – BLUEPIXY

+1

'% d' erfordern' int', nicht Zeiger (wenn Zeiger, UB, Recht?). – BLUEPIXY

+1

was auch immer, aber ich bin nicht sicher, dass diese Frage eine Antwort verdient. Es ist nur ein Tippfehler. –

Verwandte Themen