背景:上午看書閱及這兩對概念,有很多相似之處,故記之。
一. 局部變量&全局變量
1 局部變量:“在函數內定義的變量”,
即在一個函數內部定義的變量,只在本函數范圍內有效。
2 全局變量:“在函數外定義的變量”,
即從定義變量的位置到本源文件結束都有效。
目的:增加函數間數據聯系的渠道。由於同一文件中的所有函數都能引用全局變量的值,因此如果在一個函數中改變了全局變量的值,
就能影響到其他函數中全局變量的值,相當於各個函數之間有直接的傳遞渠道。
為了便於區別兩者,C程序設計人員有一個習慣,將全局變量名的第一個字母用大寫表示。如:float Max=0,Min=0; //定義全局變量Max,Min
二. 內部函數&外部函數
1.內部函數:只被本文件中其他函數所調用。
定義內部函數時,在函數名、函數類型前加 static 。 static 類型名 函數名(形參表); 例如,static int fun(int a,int b);
2.外部函數:可供其他文件調用。
定義外部函數時,在函數首部左端加 extern。extern int fun(int a,int b);
若在定義函數時省略extern,則默認為外部函數。
拓展一個問題,為什么C語言要求在定義所有的變量時都要指定變量的類型?
所謂類型,就是對數據分配存儲單元的安排,包括存儲單元的長度(占多少字節)以及數據的存儲形式。不同的類型分配不同的長度和存儲形式。
在計算機中,數據是存放在存儲單元中的,它是具體存在的(在數學中,數和數的運算都是抽象的)。而且,存儲單元是由有限的字節構成的,
每一個存儲單元中存放數據的范圍是有限的,不可能存放“無窮大”的數,也不能存放循環小數。
最后附上c語言包含的數據類型
END 謝謝!