1. 程式人生 > 實用技巧 >一些知識

一些知識

指標:https://www.cnblogs.com/tongye/p/9650573.html

int *p;        // 宣告一個 int 型別的指標 p
char *p        // 宣告一個 char 型別的指標 p
int *arr[10]   // 宣告一個指標陣列,該陣列有10個元素,其中每個元素都是一個指向 int 型別物件的指標
int (*arr)[10] // 宣告一個數組指標,該指標指向一個 int 型別的一維陣列
int **p;       // 宣告一個指標 p ,該指標指向一個 int 型別的指標

宣告一個指標變數並不會自動分配任何記憶體。在對指標進行間接訪問之前,指標必須進行初始化:或是使他指向現有的記憶體,或者給他動態分配記憶體,否則我們並不知道指標指向哪兒,這將是一個很嚴重的問題,稍後會討論這個問題。初始化操作如下:
/* 方法1:使指標指向現有的記憶體 */
int x = 1;
int *p = &x;  // 指標 p 被初始化,指向變數 x ,其中取地址符 & 用於產生運算元記憶體地址

/* 方法2:動態分配記憶體給指標 */
int *p;
p = (int *)malloc(sizeof(int) * 10);    // malloc 函式用於動態分配記憶體
free(p);    // free 函式用於釋放一塊已經分配的記憶體,常與 malloc 函式一起使用,要使用這兩個函式需要標頭檔案 stdlib.h
*(p++) 先取值在p++   等價於先 *p 然後p++
*(++p) 先p++在取值