/* 指針 : 專於保存地址的數據結構,佔用8個字節,而且能夠經過指針保存的地址訪問指針指向的內存空間的值; 定義格式 : 指針所指向的數據類型 *指針名稱; 初始化 ; 1,定義的同時初始化,如 : int *[n]numP = # //定義幾級指針,則寫幾個"*"; 2,定義後,再初始化,如 : int *[n]numP; numP = # //注 : 變量名稱每每決定了從內存哪裏開始取值;數據類型決定了從內存取值時,決定要取多少個字節的值, 固然取出來的只是二進制而已;而佔位符則決定了將取出來的二進制轉換成怎樣的形式進行輸出; 指向數組的指針 : 定義格式 : 數組數據類型 *指針名稱; //注 : 數組名稱保存的即爲數組的地址,即爲數組中第一個元素的地址;所以,在對指向數組的指針初始化時,可直接將數組名稱賦值給指針便可; //注 : 指針可作加減運算,如某個指針加1,這裏的1指的是單位1,也即指針所指向的數據類型佔用的字節數; 案例 : 利用指針遍歷字符串 : char string[] = "acssd"; char *stringP = string; while (*stringP != '\0') { printf("%c",*stringP); stringP++; } printf("\n"); 指針和字符串 : 保存字符串的兩種方式 : 經過數組保存字符串,如 : char string[] = "adsdds"; //字符串保存位置: 棧中,生命週期 : 自建立起至return或"}"; 經過指針保存字符串,如 : char *string = "assd"; //字符串保存位置 : 常量區中,生命週期 : 自建立起,始終存在,且在常量區中,值相同的變量指向同一塊內存空間; //應用場景 : 當須要頻繁使用某一個常量時,可避免內存空間的頻繁建立和釋放,提高程序執行效率; 指針數組 : 就是保存有多個指針的數組 指針指向的數據類型 *數組名稱[元素個數]; 指向函數的指針 : //注 : 函數也會佔據一塊內存空間,所以函數也會有本身的地址,保存在函數名中; 定義格式 : 函數返回值的數據類型 (*指針名稱) (形參) //形參名稱可省略不寫; 經過指針調用函數 : 1,(*指針名稱)(實參) 2,指針名稱(實參) 應用場景 : 實現入口或類; 常可經過指針實現一個入口,根據用戶需求不一樣,調用不一樣的函數以實現不一樣的動做或功能.由此,咱們也能夠理解"類"這一律念,如在python中的print函數,時間上print函數 僅僅只是一個打印入口而已,print函數會根據用戶要求打印的內容不一樣,調用不一樣的打印函數,打印相應的內容,如打印整型數據和打印浮點型數據,調用的打印函數就不一樣; */