C++ "變數"的可視範圍 (包括變數的宣告及定義、全域變數、區域變數、區塊變數、static、extern等概念)

本文探讨了C++中的变量声明与定义,强调一个变量只能定义一次但可以多次声明。解释了变量的可见范围,从全局变量、局部变量到块级变量,并指出同名变量的优先级。此外,还详细阐述了`extern`和`static`关键字的使用,前者用于引用外部全局变量,后者创建在内存中持久存在的静态变量,以及静态成员在类中的特殊行为和限制。
摘要由CSDN通过智能技术生成
  • 要進入文章之前,要先依序理解變數的宣告及定義 & 變數可視範圍及優先順序
> 變數的宣告及定義

以下都以整數型態做示範

  • 註:「變數」可以多次宣告,但只能一次定義。
  • 變數的宣告:
    extern int num;
    注意:int num; 並不是宣告,是定義。
  • 變數的定義
    ex1:int i;
    ex2:int i = 1 (定義與初始化)
    ex3:extern int i = 1 (定義+初始化)
> 變數的可視範圍
  • 可視範圍:全域變數 > 區域變數 > 區塊變數
  • 同名稱變數優先順序:區塊變數 > 區域變數 > 全域變數
  • 全域變數
    在任何函數與類別之外所宣告,一般情況下作用域與生命週期是整個程式以及直到程式結束才終止。
  • 區域變數
    在函式之類所宣告的變數,作用域與生命週期只在函數之內,離開函數之外就消失。
  • 區塊變數
    在迴圈類型(while、for…)的區塊內所宣告,作用域及生命僅在迴圈之內,離開之後便消失。
> 關鍵字的使用
  • extern (呼叫外部的全域變數)
    使用在外部檔案(不須使用include引進)的全域變數,概念是在外部檔案A宣告並定義全域變數之後,在本地檔案B使使用extern再次宣告該變數為外部變數,來達到使用到外部變數。

例子一 :一般情況下 “extern” 宣告全域變數

//外部檔案A.h
int num = 3;  		//在外部檔案定義一個全域變數
//上述也可寫成以下方式:
//extern num = 3;   //一般全域變數預設都是 extern宣告,所以省略不寫
//本地檔案B
//不需要include "A.h",若引進會發生重複定義的錯誤
extern int num;		//extern所呼叫的外部變數,不可同時宣告+初始化,若需初始化則要分開執行
num = 10			//分開後初始化的外部變數
int main (){
   
std::cout << num << std::endl;	//輸出10,若不在此文件中初始化為 10,則保持外部所儲存的值 3
}

例子二 :當要使用 “extern” 使用型態為 “const” 的外部全域變數的特殊情況

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值