在c程序中數組、指針、函數為一個程序設計中常常用到的三個部分,憑借著編輯充分的理解與想象,整理了以下文檔。
一、數組
數組的定義就是在內存中開辟一塊連續的、大小相同的空間,用來存儲數據,例如下圖定義一個int型的一位數組a[3],那么可以從圖中便可直觀的看出數組存放的機制是一塊連續的大小為一個int所占字節的一塊空間(編譯器默認一個int占4個字節,假設a的起始位置為0x7ffc866501cc)。

二、指針
指針其實是一個整形變量,與其它數據不同的是,它的作用是用來存儲其它變量的地址。指針(Pointer)是編程語言中的一個對象,利用地址,它的值直接指向(points to)存在電腦存儲器中另一個地方的值。由于通過地址能找到所需的變量單元,可以說,地址指向該變量單元。如下圖,將數組a賦給指針p,那么p就得到了a的起始位置,p也就可以當做a來使用。

三、函數
函數就是 C 語言的模塊,一塊一塊的,有較強的獨立性,可以相互調用,換句話說,C 語言中,一個函數里面可以調用 n 個函數,即大函數調用小函數,小函數又調用“小小”函數。這就是結構化程序設計,所以面向過程的語言又叫結構化語言。函數就是一系列 C 語句的集合,能完成某個特定的功能。需要該功能的時候直接調用該函數即可,不用每次都堆疊代碼。需要修改該功能時,也只需要修改和維護這一個函數即可。
例如我們做一個輸出數組中所有數據的函數printf_arr(int *p,int n)這個函數需要兩個值傳遞過來,一個是數組的起始位置我們用一個指針p來接收,另一個是數組個數用整形的n來接收在printf_arr中我們便可以通過當前指針的位置以及個數循環輸出數組中的所有數據。




