【用戶】【站僕】摩檸Morning
【年級】小一下
【評論內容】原本題目:29. 若執行以下 C 語言撰寫之程式,下列敘述何者正確?(A)呼叫 funcA()之後,輸出為 3,2 並跳行(B)呼叫 funcB()之後,輸出為 0,2 並跳行(C)呼叫 funcA()之後,輸出為 0,2 並跳行(D)呼叫 funcB()之後,輸出為 3,2 並跳行修改成為29. 若執行以下 C 語言撰寫之程式,下列敘述何者正確?#include <stdio.h#include <stdlib.h#include <iostreamvoid funcA(void);void funcB(void);int a, b = 2;int main(void) { funcA(); printf('%d, %d ', a, b); funcB(); printf('%d, %d ', a, b); system('PAUSE'); return 0 ;}void funcA() { int a; a = 3;}void funcB() { a = 3; b = 4;}(A)呼叫 funcA()之後,...
【用戶】HowHow Chen
【年級】幼稚園下
【評論內容】因為在funcA 有定義int a ,所以 funcA的 a=3 實際上是改變命名空間 funcA的區域,等funcA結束後,記憶體空間又被殺掉於是等於全域變數的a並沒改變,比較令人疑惑的點是,全域變數的int a 並未清空,所以是不是0要看記憶體空間配置給a的預設值是不是0