地特三等申論題
105年
[資訊處理] 程式語言
第 一 題
📖 題組:
在程式語言中變數可歸類成下列幾種:static variable、stack-dynamic variable、explicit heap-dynamic variable、implicit heap-dynamic variable。 (一) 請比較上述變數的差異。(12 分) (二) 在 C++語言裡,如果有變數定義如下 int *data; data=new int; delete data; 請問“data”屬於那一種變數?試說明之。(3 分)
在程式語言中變數可歸類成下列幾種:static variable、stack-dynamic variable、explicit heap-dynamic variable、implicit heap-dynamic variable。 (一) 請比較上述變數的差異。(12 分) (二) 在 C++語言裡,如果有變數定義如下 int *data; data=new int; delete data; 請問“data”屬於那一種變數?試說明之。(3 分)
📝 此題為申論題,共 2 小題
小題 (一)
請比較上述變數的差異。(12 分)
思路引導 VIP
解答此題應聚焦於變數「記憶體配置(Allocation)」與「解除配置(Deallocation)」的時間點、所在記憶體區域(Static/Stack/Heap)及綁定方式。建議就每一種變數的定義、優點與缺點進行結構化論述,以清楚呈現彼此的差異,爭取完整分數。
小題 (二)
在 C++語言裡,如果有變數定義如下 int *data; data=new int; delete data; 請問“data”屬於那一種變數?試說明之。(3 分)
思路引導 VIP
本題的核心陷阱在於區分「指標變數本身」與「指標所指向的記憶體空間」。看到 new 時不要直接回答 heap-dynamic,必須釐清題目問的是 data 這個指標變數,其通常宣告於函式內,配置於堆疊區。