1. 程式人生 > >printf列印引數的順序問題

printf列印引數的順序問題

C語言的printf函式處理的引數順序是從右向左的,例如如下程式:
#include <stdio.h>  int main()  {      int a = 1, b = 2, c = 3;      printf("(a + b + c)的值是%d, b的值是%d, c的值是%d\n", a+b+c, (b = b + 1), (c = c + 2));      return 0; 

執行的結果是:


按照從右向左的處理順序, “ printf("(a + b + c)的值是%d, b的值是%d, c的值是%d\n", a+b+c, (b = b + 1), (c = c + 2)); ”語句先處理最右邊的引數c,經過c=c+2後,變數c的值是5;再處理b=b+1,b的值是3;最後處理a+b+c,也就是1+3+5,為9!


本實驗是在Visual C++ 6.0 實現的。在其它的開發平臺上,printf函式的列印順序可能會不一樣。