int foo(int x) 函數會將其參數 x 的值乘以2然後返回。當 foo 被呼叫兩次並且結果被相加時,需要注意的是C語言中函數參數的求值順序是未定義的,意味著 foo(x) 中的 x 可能在第一次呼叫之前或之後被求值。但由於每次呼叫 foo 都是傳值呼叫,並且原始的 x 值並沒有在 foo 中被改變,因此每次呼叫 foo 都會用 x 的原始值6進行計算。
int foo(int x) { x *= 2; return x; }
// ...
int x = 6; printf(“%d\n”, foo(x) + foo(x));
所以, foo(x) 每次呼叫都會返回 12(6 * 2),並且 foo(x) + foo(x) 的結果會是 24(12 + 12)。
(二) 函數 sp 是一個遞迴函數,它先打印出一個整數值的最後一位數字(value % 10),然後再遞迴調用自己,除以10的結果(value / 10)。
給定 sp(728); 的呼叫,以下是函數的行為:
因此,該程序的輸出將會是:
這就是在給定的問題中C語言程式的輸出。