把變數定義在主函式之外,即把變數設定為全域性的。
一般我們都把變數的定義放在函式中,因此變數的範圍就是在本函式中。可是如果定義在所有函式的外面,這樣所有的函式中,都可以使用本變數。
你可以試一下這個程式。定義一個全域性變數a,在主函式中進行賦值,然後在子函式中進行輸出,結果是5.
#include
int a;
void func();//函式宣告
int main()
{
a=5;
func();
}
void func()
printf("%d\n", a);
+++++++++++++++++++++++++++++++++++++++++++++++++++
當然,除了定義全域性變數這個方法,還有其他的方法,那就是指標。在子函式的引數中傳遞變數的地址,依然可以使用該變數,依然能夠改變該變數的值。因為主函式和子函式的變數共用的是同一個地址的變數,因此,不管在哪個函式中對變數進行操作,都會影響變數。
比如下面這個程式,在主函式中a的值為5,將變數a的地址傳遞過去,子函式將該地址中的變數的值設定為3,然後主函式輸出,結果卻是3.
void func(int *b);//函式宣告
int a=5;
func(&a);//把變數a的地址傳遞過去
void func(int *b)
*b=3; //將地址b中變數的值設定為3
把變數定義在主函式之外,即把變數設定為全域性的。
一般我們都把變數的定義放在函式中,因此變數的範圍就是在本函式中。可是如果定義在所有函式的外面,這樣所有的函式中,都可以使用本變數。
你可以試一下這個程式。定義一個全域性變數a,在主函式中進行賦值,然後在子函式中進行輸出,結果是5.
#include
int a;
void func();//函式宣告
int main()
{
a=5;
func();
}
void func()
{
printf("%d\n", a);
}
+++++++++++++++++++++++++++++++++++++++++++++++++++
當然,除了定義全域性變數這個方法,還有其他的方法,那就是指標。在子函式的引數中傳遞變數的地址,依然可以使用該變數,依然能夠改變該變數的值。因為主函式和子函式的變數共用的是同一個地址的變數,因此,不管在哪個函式中對變數進行操作,都會影響變數。
比如下面這個程式,在主函式中a的值為5,將變數a的地址傳遞過去,子函式將該地址中的變數的值設定為3,然後主函式輸出,結果卻是3.
#include
void func(int *b);//函式宣告
int main()
{
int a=5;
func(&a);//把變數a的地址傳遞過去
printf("%d\n", a);
}
void func(int *b)
{
*b=3; //將地址b中變數的值設定為3
}