全局變量,局部變量和形式參數


全局變量:全局變量在整個程序內都是可知的,因此可以被任何代碼段所使用,他們在程序中執行時保持他們的值,可以再任何函數之外來創建他們,任何表達式都可訪問他們。
全局變量存儲在一個固定的存儲區,這時由編譯器設定的,當程序中多個函數使用一個變量時,全局變量就變得很有用。但是不必要的全局變量卻會帶來麻煩:
1、全局變量在整個程序運行中都占據內存,只有當程序結束時才被銷毀。
2、在應該使用局部變量的地方使用全局變量會降低函數的同用行,因為全局變量必須依靠在他本身之外的定義。
3、使用大量的全局變量會使程序因為不可預知的副作用而產生錯誤。(有可能會因改變全局變量的值而產生錯誤)
例:
#include <stdio.h>
int count; //全局變量
int main()
{
count = 100 ;//可以使用count
func1 ();
return 0 ;
}
局部變量:在函數內部聲明的變量成為局部變量,更具體的說是在代碼塊內部創建的變量叫做局部變量(代碼塊就是一對{}內的內容),局部變量在進入代碼塊被創建,出了代碼塊立即被銷毀。
例如:
void fun1 ( void )
{
int x;
x = 10;
}
void fun2( void )
{
int x;
x = -99;
}
這兩個x就是局部變量。因為局部變量在出了代碼塊就被銷毀,因此我們可以使用static這個關鍵字修飾變量,使他的值保留下來。沒有被static聲明過得局部變量都存儲在堆棧上。

例:
#include <stdio.h>
int count;      //全局變量
void func1( void );
int main()
{
     count = 100 ;
     func1 ();
     return 0 ;
}
void func1( void )
{
     int count;   //局部變量
     for (count = 1 ; count < 10 ; count++)
  {
      putchar ( '.' );
  }
}
在這個例子中count被定義了兩次,一次是全局變量,一次是局部變量,當全局變量和局部變量重名時,在局部變量聲明的區域內我們以局部變量作為引用對象,並且再次期間對於全局變量沒有任何影響。

形式參數:形式參數出現在函數內,當函數要接受實參時,必須聲明接受實參的變量,這些變量就是形參,同局部變量一樣,形參再出了函數之后就被銷毀。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM