阿摩線上測驗 登入

申論題資訊

試卷:105年 - 105 地方政府特種考試_三等_資訊處理:程式語言#58715
科目:程式語言
年份:105年
排序:0

題組內容

六、在程式語言中變數可歸類成下列幾種:static variable、stack-dynamic variable、explicit heap-dynamic variable、implicit heap-dynamic variable。

申論題內容

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

詳解 (共 1 筆)

詳解 提供者:hchungw

在C++語言裡,int *data; data = new int; delete data; 中的變數 data 屬於 Stack-Dynamic Variable,而它指向的內存空間屬於 Explicit Heap-Dynamic Variable

詳細說明:

  1. Stack-Dynamic Variable (data):

    • data 是一個指針變數,它本身是分配在堆疊(stack)上的。
    • 它的生命週期是隨著它所在的作用域(如函數或區塊)而決定的。
    • 當這個作用域結束時,data 這個指針變數本身會被自動釋放。
  2. Explicit Heap-Dynamic Variable(new int):

    • data 指向的內存空間是通過 new 操作符顯式分配在堆(heap)上的。
    • 這塊內存的生命週期是由程序員手動控制的,需要通過 delete 操作符來顯式釋放。
    • 這樣的內存管理方式使得內存空間可以在不同函數之間共享,並且可以在動態運行時期改變其大小和生命週期。