免費開始練習
地特三等申論題 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 分)
📝 此題為申論題,共 2 小題

小題 (一)

請比較上述變數的差異。(12 分)

思路引導 VIP

解答此題應聚焦於變數「記憶體配置(Allocation)」與「解除配置(Deallocation)」的時間點、所在記憶體區域(Static/Stack/Heap)及綁定方式。建議就每一種變數的定義、優點與缺點進行結構化論述,以清楚呈現彼此的差異,爭取完整分數。

🤖
AI 詳解
AI 專屬家教

【破題】 程式語言中的變數生命週期,依其「記憶體配置(Allocation)」與「解除配置(Deallocation)」的發生時機與記憶體區段,可劃分為下列四種類型: 【論述】

小題 (二)

在 C++語言裡,如果有變數定義如下 int *data; data=new int; delete data; 請問“data”屬於那一種變數?試說明之。(3 分)

思路引導 VIP

本題的核心陷阱在於區分「指標變數本身」與「指標所指向的記憶體空間」。看到 new 時不要直接回答 heap-dynamic,必須釐清題目問的是 data 這個指標變數,其通常宣告於函式內,配置於堆疊區。

🤖
AI 詳解
AI 專屬家教

「data」屬於 堆疊動態變數(Stack-dynamic variable)。 理由說明如下:

  1. 指標變數本身:程式碼 int *data; 宣告了一個指標變數 data。在一般函式或區塊中,此變數的記憶體是配置在堆疊(Stack)上的,其生命週期隨著程式執行到該宣告而產生,離開區塊時自動釋放,故屬於 Stack-dynamic variable。

📝 同份考卷的其他題目

查看 105年[資訊處理] 程式語言 全題

升級 VIP 解鎖