C++ 變數範圍

來源:互聯網
上載者:User

在main中定義了兩個全域變數分別是a,b,一個靜態全域變數c,同時對兩個全域函數進行了extern聲明。
在其他檔案中要使用a,b需要用extern先聲明,便可以使用,但是由於是全域變數必然有全域變數的特性。
靜態屈居變數只能在本模組中使用,不可以在其他模組中用extern聲明使用
靜態局部變數有局部變數的範圍,但是又有全域變數的性質。

下面是一個例子:

main.cpp中的內容:

#include<iostream><br />using namespace std;<br />int a,b;//定義全域變數<br />static int c=0;//全域靜態變數只能在本模組中用<br />extern void fun1();<br />extern void fun2();<br />void fun3()<br />{<br />static int m=0;//局部靜態變數只被初始化一次,相當於局部全域變數<br />int n=0;<br />n++,m++;<br />cout<<"n="<<n<<" m="<<m<<endl;<br />}<br />int main()<br />{<br />fun1();<br />fun2();<br />cout<<"in main a="<<a<<" b="<<b<<endl;<br />for(int i=0;i<4;i++)<br />fun3();<br />cout<<"c="<<c<<endl;<br />system("pause");<br />return 0;<br />}<br />//在main中定義了兩個全域變數分別是a,b,一個靜態全域變數c,同時對兩個全域函數進行了extern聲明。<br />//在其他檔案中要使用a,b需要用extern先聲明,便可以使用,但是由於是全域變數必然有全域變數的特性。<br />//靜態屈居變數只能在本模組中使用,不可以在其他模組中用extern聲明使用<br />//靜態局部變數有局部變數的範圍,但是又有全域變數的性質。

fun1.cpp中的內容:

#include<iostream><br />using namespace std;<br />extern int a;//擴充使用全域變數<br />//extern int c;<br />void fun1()<br />{<br />a=10;<br />cout<<"in fun1 a="<<a<<endl;<br />//cout<<"c="<<c<<endl;<br />}

fun2.cpp內容:

#include<iostream><br />using namespace std;<br />extern int a,b;//擴充使用全域變數<br />void fun2()<br />{<br />a=2,b=100;<br />cout<<"in fun2 a="<<a<<" b="<<b<<endl;<br />}

呵呵好久沒有學演算法了!唉最近有些頹廢啊,只是在學課程,都把我最愛的acm給落下了!真是慚愧啊!!!!

繼續加油我的acm!

加油吧!!!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.