首頁 > 後端開發 > C++ > 主體

C++ 函數的局部變數和全域變數有什麼不同?

WBOY
發布: 2024-04-19 15:42:01
原創
223 人瀏覽過

C 局部變數和全域變數的差異:可見性:局部變數僅限於定義函數,而全域變數在整個程式中可見。記憶體分配:局部變數在堆疊上分配,而全域變數在全域資料區分配。作用域:局部變數在函數內,而全域變數在整個程式中。初始化:局部變數在函數呼叫時初始化,而全域變數在程式啟動時初始化。重新創建:局部變數在每次函數呼叫時重新創建,而全域變數僅在程式啟動時創建。

C++ 函数的局部变量和全局变量有什么区别?

C 函數的局部變數和全域變數:大有不同

在C 中,局部變數和全域變數之間有著重要區別,理解這些區別對於編寫高效、易於維護的程式碼至關重要。

局部變數

  • 在函數內定義並僅在函數範圍內可見。
  • 在函數被呼叫時創建,在函數返回時銷毀。
  • 每次呼叫函數時,局部變數都會重新建立。

範例程式碼:

void myFunction() {
    int localVariable = 5; // 局部变量
    // ... 使用 localVariable
}

int main() {
    myFunction();
    // localVariable 无法访问,因为它不在 main() 函数的范围内
}
登入後複製

全域變數

  • 在函數外定義,在整個程式範圍內可見。
  • 在程式啟動時創建,在程式終止時銷毀。
  • 對於程式中所有函數來說,全域變數都是可見的。

範例程式碼:

int globalVariable = 10; // 全局变量

void myFunction() {
    // ... 使用 globalVariable
}

int main() {
    // ... 使用 globalVariable
}
登入後複製

區別

特徵#局部變數全域變數
可見性僅限於定義它們的函數整個程式
生命週期函數呼叫期間程式執行期間​​
記憶體分配#在堆疊上在全域資料區
作用域#在函數內在整個程式中
初始化函數呼叫時程式啟動時
#重新建立每當函數被呼叫時僅在程式啟動時

實戰案例

舉例說明局部變數

#在下列範例中,局部變數name 僅在greet() 函數內使用,並且在每次函數被呼叫時都重新建立:

void greet(std::string name) {
    std::cout << "Hello, " << name << "!" << std::endl;
}

int main() {
    greet("John");
    greet("Mary"); // 局部变量 name 将重新创建
}
登入後複製

舉例說明全域變數

在以下範例中,全域變數g_count 在整個程式範圍內可見,並且在每次函數被呼叫時都會被更新:

int g_count = 0; // 全局变量

void incrementCount() {
    g_count++;
}

int main() {
    incrementCount();
    std::cout << "Count: " << g_count << std::endl; // 输出 1

    incrementCount();
    std::cout << "Count: " << g_count << std::endl; // 输出 2
}
登入後複製

以上是C++ 函數的局部變數和全域變數有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!