例如如下的 C 語言源程式:
int i ;
void mysub( ) ;
void main( )
{
int j = 5 ;
i = 50 ;
mysub( j ) ;
printf("i = %d\t%d\n", i , j ) ;
}
void mysub( int j )
i += 80 ;
j += 100 ;
定義在主函式 main( ) 之外的變數 i 就是全域性變數,它在 main( ) 函式中的初始值為 50,到了 mysub( ) 子函式中,i 的值變成了 130,則再返回主函式 main( ) 時,列印 i 的值就是 130。
而變數 j 就是區域性變數,僅限於 main( ) 函式有效。雖然在子函式 mysub( ) 中將 j 的值增加了 100,但是返回主函式時,列印的 j 的值仍然是 5 。
總而言之就是:全域性變數是定義在主函式 main( ) 之外的變數,C 語言源程式中的任何一個子函式都可以修改該變數的值;而區域性變數就是:該變數僅僅在定義了某個子函式的內部有效,只要該子函式執行完,返回主函式,該變數的值就無效了。
例如如下的 C 語言源程式:
int i ;
void mysub( ) ;
void main( )
{
int j = 5 ;
i = 50 ;
mysub( j ) ;
printf("i = %d\t%d\n", i , j ) ;
}
void mysub( int j )
{
i += 80 ;
j += 100 ;
}
定義在主函式 main( ) 之外的變數 i 就是全域性變數,它在 main( ) 函式中的初始值為 50,到了 mysub( ) 子函式中,i 的值變成了 130,則再返回主函式 main( ) 時,列印 i 的值就是 130。
而變數 j 就是區域性變數,僅限於 main( ) 函式有效。雖然在子函式 mysub( ) 中將 j 的值增加了 100,但是返回主函式時,列印的 j 的值仍然是 5 。
總而言之就是:全域性變數是定義在主函式 main( ) 之外的變數,C 語言源程式中的任何一個子函式都可以修改該變數的值;而區域性變數就是:該變數僅僅在定義了某個子函式的內部有效,只要該子函式執行完,返回主函式,該變數的值就無效了。