題組內容
四、回答下列問題:(每小題 5 分,共 25 分)
⑸請問執行下列程式之結果為何?
…
void abc();
void main() {
for (int i = 0; i < 5; i++)
abc();
}
void abc() {
static int num = 0;
cout << num;
num++;
}
詳解 (共 1 筆)
詳解
在這個程式中,abc()函數被定義為包含一個靜態區域變數num,其初始值為0。靜態區域變數的特點是它們在函數首次被調用時初始化,並且它們的值在函式呼叫之間保持不變,直到程式結束。每次調用abc()時,都會輸出當前的num值,然後num的值增加1。
程式主體是一個迴圈,迴圈5次調用abc()函數。因此,每次調用abc()時,都會輸出變數num的當前值,然後增加num的值。
因此,執行上述程式的結果將是連續輸出變數num的值,從0開始,每次增加1,直到4。所以,輸出結果將是:
Copy code
01234
這意味著第一次調用abc()時,num被初始化為0並列印出來;然後,在每次後續調用中,num的值分別增加到1、2、3、4,並在每次調用時列印出來。
01234
這意味著第一次調用abc()時,num被初始化為0並列印出來;然後,在每次後續調用中,num的值分別增加到1、2、3、4,並在每次調用時列印出來。