#include
using namespace std;
void test1();//測試用函數一
void test2();//測試用函數二
int main(void) //內部
{
extern int a;
for(int i=1;i<=3;i++)
{
cout<<"==========NO."<cout<<"a未進入函數的值="<test1(); //放入函數且不改變
test2(); //改變a的數值
}
system("pause");
return 0;
}
int a=2; //記得要宣告a的變數型態 int
//================ 函數一 =================
void test1() //外部
{
cout<<"函數一:a="<}
//================ 函數二 ==================
void test2() //外部
{
a++;
cout<<"函數二:a+1="<}
========================================
輸出結果為:
==========NO.1==========
a未進入函數的值=2
函數一:a=2
函數二:a+1=3
==========NO.2==========
a未進入函數的值=3
函數一:a=3
函數二:a+1=4
==========NO.3==========
a未進入函數的值=4
函數一:a=4
函數二:a+1=5
========================================
從輸出結果可以看出a的值只要再其中一個地方被改變值不管是不是在程式內被改變還是在函數內被改變
a的值永遠是共用的(被外部&內部共用)
以static為例:
#include
#include
using namespace std;
void test1();//測試用函數一
void test2();//測試用函數二
int main(void)
{
static int a;
for(int i=1;i<=3;i++)
{
cout<<"==========NO."<cout<<"a未進入函數的值="<test1(); //放入函數且不改變
test2(); //改變a的數值
}
system("pause");
return 0;
}
int a=2; //記得要宣告a的變數型態 int
//========== 函數一 ==========
void test1()
{
cout<<"函數一:a="<}
//==========函數二 ==========
void test2()
{
a++;
cout<<"函數二:a+1="<}
========================================
輸出結果為:
==========NO.1==========
a未進入函數的值=0
函數一:a=2
函數二:a+1=3
==========NO.2==========
a未進入函數的值=0
函數一:a=3
函數二:a+1=4
==========NO.3==========
a未進入函數的值=0
函數一:a=4
函數二:a+1=5
========================================
內部的a和外部的a並沒有共用 函數和函數之間共用一個a
沒有留言:
張貼留言