最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

變量定義與聲明的區(qū)別詳細解析

 更新時間:2013年09月26日 09:12:59   作者:  
外部變量(全局變量)的"定義"與外部變量的"聲明"是不相同的,外部變量的定義只能有一次,它的位置是在所有函數之外,而同一個文件中的外部變量聲明可以是多次的,它可以在函數之內(哪個函數要用就在那個函數中聲明)也可以在函數之外(在外部變量的定義點之前)

我們在程序設計中,時時刻刻都用到變量的定義和變量的聲明,可有些時候我們對這個概念不是很清楚,知道它是怎么用,但卻不知是怎么一會事,下面我就簡單的把他們的區(qū)別介紹如下:

變量的聲明有兩種情況:
(1) 一種是需要建立存儲空間的(定義、聲明)。例如:int a在聲明的時候就已經建立了存儲空間。

(2) 另一種是不需要建立存儲空間的(聲明)。例如:extern int a其中變量a是在別的文件中定義的。

前者是"定義性聲明(defining declaration)"或者稱為"定義(definition)",而后者是"引用性聲明(referncing declaration)"。從廣義的角度來講聲明中包含著定義,但是并非所有的聲明都是定義,例如:int a它既是聲明,同時又是定義。然而對于extern a來講它只是聲明不是定義。一般的情況下我們常常這樣敘述,把建立空間的聲明稱之為"定義",而把不需要建立存儲空間稱之為"聲明"。很明顯我們在這里指的聲明是范圍比較窄的,也就是說非定義性質的聲明。

例如:在主函數中

復制代碼 代碼如下:

int main()
{
extern int A; //這是個聲明而不是定義,聲明A是一個已經定義了的外部變量
  //注意:聲明外部變量時可以把變量類型去掉如:extern A;
dosth();  //執(zhí)行函數
}

int A;//是定義,定義了A為整型的外部變量(全局變量)


外部變量(全局變量)的"定義"與外部變量的"聲明"是不相同的,外部變量的定義只能有一次,它的位置是在所有函數之外,而同一個文件中的外部變量聲明可以是多次的,它可以在函數之內(哪個函數要用就在那個函數中聲明)也可以在函數之外(在外部變量的定義點之前)。系統會根據外部變量的定義(而不是根據外部變量的聲明)分配存儲空間的。對于外部變量來講,初始化只能是在"定義"中進行,而不是在"聲明"中。所謂的"聲明",其作用,是聲明該變量是一個已在后面定義過的外部變量,僅僅是在為了"提前"引用該變量而作的"聲明"而已。extern只作聲明,不作定義。

用static來聲明一個變量的作用有二:
(1) 對于局部變量用static聲明,則是為該變量分配的空間在整個程序的執(zhí)行期內都始終存在
(2) 外部變量用static來聲明,則該變量的作用只限于本文件模塊

您可能感興趣的文章:

相關文章

  • C語言數據結構之線性表的鏈式存儲結構

    C語言數據結構之線性表的鏈式存儲結構

    線性表是最基本、最簡單、也是最常用的一種數據結構。線性表(linear list)是數據結構的一種,一個線性表是n個具有相同特性的數據元素的有限序列,這篇文章帶你學習下線性表的鏈式存儲結構
    2021-11-11
  • Linux下實現C++操作Mysql數據庫

    Linux下實現C++操作Mysql數據庫

    由于工作需要抽出一周的時間來研究C/C++訪問各種數據庫的方法,并打算封裝一套數據庫操作類,現在奉上最簡單的一部分:在Linux下訪問MySQL數據庫。
    2017-05-05
  • C++ 整數拆分方法詳解

    C++ 整數拆分方法詳解

    整數拆分,指把一個整數分解成若干個整數的和。本文重點給大家介紹C++ 整數拆分方法詳解,非常不錯,感興趣的朋友一起學習吧
    2016-08-08
  • C語言實現輸出平均成績最高學生的信息

    C語言實現輸出平均成績最高學生的信息

    這篇文章主要介紹利用C語言實現輸出平均成績最高學生的信息,文章舉例說明并附有詳細代碼,需要的朋友可以參考一下
    2021-10-10
  • C++中雙冒號::用法案例詳解

    C++中雙冒號::用法案例詳解

    這篇文章主要介紹了C++中雙冒號::用法案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-09-09
  • OpenCV圖像文件批量讀取編程實例

    OpenCV圖像文件批量讀取編程實例

    這篇文章主要為大家詳細介紹了OpenCV圖像文件批量讀取編程實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C語言中有哪些字符處理函數你知道嗎

    C語言中有哪些字符處理函數你知道嗎

    這篇文章主要為大家詳細介紹了C語言字符處理函數,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C語言實現逆序輸出詳細

    C語言實現逆序輸出詳細

    這篇文章主要介紹了C語言實現逆序輸出。主要實現C語言實現對數組元素依次賦值然后按照逆序輸出,下面文章小編將詳細解說,需要的朋友可以參考一下
    2021-10-10
  • Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設置X軸的顯示區(qū)間

    Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設置X軸的顯示區(qū)間

    這篇文章主要介紹了Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設置X軸的顯示區(qū)間,需要的朋友可以參考下
    2020-03-03
  • C語言運用回調函數實現計算器

    C語言運用回調函數實現計算器

    這篇文章主要為大家詳細介紹了C語言運用回調函數實現計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10

最新評論

砚山县| 合作市| 沙河市| 青岛市| 古丈县| 富民县| 祥云县| 浪卡子县| 鄂伦春自治旗| 延安市| 阿图什市| 恭城| 城市| 黔西县| 兰州市| 韩城市| 东乡| 庄浪县| 桑植县| 石狮市| 东辽县| 金塔县| 庆元县| 板桥市| 永顺县| 镶黄旗| 西乡县| 德昌县| 邳州市| 和田县| 庆云县| 拜城县| 商河县| 扶绥县| 建德市| 望都县| 夏邑县| 南投县| 顺义区| 东阿县| 翁源县|