您好我已經在Visual C++中實現了一個C代碼,並對其進行了一些修改以進行調試。這是預期的最終輸出(階乘的值)來的代碼輸出的解釋
long long unsigned factorial(long long unsigned int * n) {
if (*n<=1) return 1;
else {
(*n)--;//This statement here .......
printf("calculating %d * factorial %d \n",*n,*n); -- used for debugging
return ((*n+1) * factorial(n));
}
}
但它是讓我驚訝的調試語句的輸出。
calculating 4 * factorial 0
calculating 3 * factorial 0
calculating 2 * factorial 0
calculating 1 * factorial 0
120
相同的值* n在每個調試語句中都使用了兩次,並且它顯示了不同的值。如果在陳述中使用兩次這種可能性相同的值,結果會不同。
你可以嘗試打印使用fprintf到標準錯誤?它仍然在做同樣的事情嗎? – yamafontes