2017-03-04 191 views
1

我不知道什麼是在這行代碼導致該錯誤錯誤:預期表達式「%」標記之前

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

「之前預計‘%’標記表達」的錯誤狀態,但我不確定是哪個字符串表示或「%」的引用。

+0

就在SO上發帖時,您可以看到代碼是錯誤的:格式字符串是雙色的。 –

回答

0

錯位的雙引號。沒有格式字符串,因爲(之後的第一個字符不是",而是%

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

由於BLUPIXY正確地指出,你也應該避免出現打印地址&b&c%d整數。如果你真的想打印地址,您必須使用%p與PTR到無效,即本:

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

這將是有益的,看看聲明的,b和c。

+2

也許,刪除'&' – BLUEPIXY

+1

'%d'需要'int',而不是指針(如果指針,UB,對嗎?)。 – BLUEPIXY

+1

無論如何,但我不確定這個問題是否值得回答。這只是一個錯字。 –

相關問題