程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> 關於使用while循環時,括號內用自加自減作條件的一個疑問

關於使用while循環時,括號內用自加自減作條件的一個疑問

編輯:關於C

《C Primer Plus》第五版第五章的一道思考題:

/*測試程序	2015.12.26*/

#include 
#define TEN 10

int main(void)
{
	int n = 0;

	while(n++ < TEN)
		printf("%5d", n);
	printf("\n");

	return 0;
}
開始我認為輸出結果為 0 1 2 3 4 5 6 7 8 9 10,但是在VC++6.0中驗證之後發現結果為 1 2 3 4 5 6 7 8 9 10。

\

 

在《C Primer Plus》第五版第五章(P104)有一段說明:

順序點幫助闡明後綴增量動作何時發生。例如,考慮下面的代碼:

while (guests++ < 10)
      printf ("%d \n", guests);

有時C的初學者會設想在本程序中“先使用該值,然後增加它的值”的意思是在使用了printf()語句後再增加guests的值。然而,因為guests++<10是while循環的判斷條件,所以它是一個完整的表達式,這個表達式的結束就是一個順序點。因此,C保證副作用(增加guests的值)在程序進入printf()前發生。同時使用後綴形式保證了guests在與10比較後才增加。						
		
	
							
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved