從空間分配上看,陣列是靜態分配,空間是連續的,而指標是動態分配,空間不一定連續,只從指標分配空間的原理可以看出;從訪問效率上看,陣列是直接訪問,所以效率較高,而指標是間接訪問,效率自然是沒有陣列高;從安全性上看,陣列易導致訪問越界的問題,而指標容易導致記憶體洩漏;作為函式形參時,陣列都會預設轉化為相對應的指標,比如一維陣列名代表一維陣列首元素的位址。
c語言中函式可以提高**的復用性,維護性,擴充套件性。
函式的呼叫過程:
1.通過函式名找到函式的入口位址
2.給形參分配記憶體空間
3.傳值:把實參變數對應空間的值傳給形參
4.執行函式體語句
5.函式返回並釋放記憶體空間(全域性變數在程式結束後釋放記憶體空間,這裡是區域性變數
釋放記憶體空間)
寫函式時不要忘記入口引數檢查
有時我們會見到main函式中有引數:
int main(int argc ,char *argv)
return 0;
}
其中argc代表的引數個數,argv裡面存放這引數的內容,主函式引數就是命令列引數。
函式指標:
#include int add(int a,int b)
int sub(int a, int b)
int cal(int *p_func,int a,int b)
int main()
指標陣列 陣列指標 指標函式 函式指標的區別
這個地方 int p 4 指標陣列。是個有4 個元素的陣列,每個元素的是指向整型的指標。陣列的每個元素都是指標 int p 4 陣列指標。它是乙個指標,指向有 4個整型元素的陣列。乙個指標指向有 4 個整型元素的陣列 int func void 指標函式。無參函式,返回整型指標。函式的返回值為 in...
陣列指標與指標陣列的區別
一 陣列指標 也稱行指標 定義 int p n 優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p 1時,p要跨過n個整型資料的長度。如要將二維陣列賦給一指標,應這樣賦值 int a 3 4 int p 4 該語句是定義乙個陣列指標,...
陣列指標與指標陣列的區別
一 陣列指標 也稱行指標 定義int p n 優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p 1時,p要跨過n個整型資料的長度。如要將二維陣列賦給一指標,應這樣賦值 int a 3 4 int p 4 該語句是定義乙個陣列指標,指...