局部變量和全局變量


局部變量

在一個函數內部定義的變量是內部變量,它只在本函數范圍內有效,也就是說只有在本函數內才能使用它們,在此函數以外是不能使用這些變量的。這稱為“局部變量”。

注意

例如,上面在f1函數中定義了變量b和c,倘若在f2函數中也定義變量b和c,它們在內存中占不同的單元,互不混淆。

全局變量

在函數內定義的變量是局部變量,而在函 數之外定義的變量稱為外部變量,外部變 量是全局變量(也稱全程變量)。

 

動態存儲

定義

  1. 動態存儲方式則是在程序運行期間根據需要進行動態的分配存儲空間的方式。

 

靜態存儲

定義

所謂靜態存儲方式是指在程序運行開始時由系統分配固定的存儲空間的方式。

static

static可定義靜態存儲(放於子函數時,保持上次調試結束后的原值,不會進行銷毀)

用於保持某些固定值等。

注意:若在定義時,不賦初值,系統會默認值為0;

Eg: 依次打出1~5的階乘數;

#include "stdio.h"
int main()
{
   int factorial (int n);
   int i;
   for(i=1;i<=5;i++)
  {
       printf("%d\n",factorial(i));
  }
}
int factorial (int n)
{
   static result=1;
   result *= n;
   return(result);
}

register variable

為提高執行效率,C語言允許將局部變量的值放在CPU中的寄存器中,需要用時直接從寄存器取出參加運算,不必再到內存中去存取。(用於某個變量多次使用,提高執行效率)

extern outside variable

編譯時提前分配內存的變量,用於解決C語言執行程序時,按照順序讀取導致某些變量來不及讀取的錯誤。

其他

對自動變量來說,如果不賦初直則它的直是一個不確定的值

原因:由於每次函數調用結束后存儲單元已釋放,下次調用時又重新另分配存儲單元,而所分配的單元中的值是不確定的。


免責聲明!

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



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