指標陣列與陣列指標的認識

2021-06-21 09:19:45 字數 2713 閱讀 7117

回顧:int arr[5];   整型陣列,表示陣列中每乙個元素都是乙個int型別

char arr[5];   字元陣列,表示陣列中每乙個元素都是char

struct student ss[5];    結構體陣列,表示陣列中每乙個元素都是乙個結構體

指標陣列:表示陣列中的每乙個元素都是乙個指標

資料型別* 陣列名[陣列長度];

如:int* parr[5];     ->表示乙個具有5個元素的陣列,陣列中每乙個元素都是int* 型別的;

首先區別一下:指標陣列:首先是乙個陣列,然後陣列中每乙個元素是個指標

字元指標:用來指向乙個字元的指標 

整型指標:用來指向乙個整型變數的指標

陣列指標:用來指向乙個陣列的指標

結構體指標:指向乙個結構體變數的指標

資料型別 (*變數名)[陣列的長度]

如:int* arr[5];      //表示指標陣列->乙個具有5個元素長度的陣列,陣列中每乙個元素都是int*型別

int(*arr)[5];  // 表示陣列指標->首先是乙個指標,乙個指向 具有5個int型別元素的陣列 的指標

陣列指標:指向陣列的指標

函式指標:指向函式的指標

函式的格式:返回值型別函式名(形參)

函式指標的格式: 返回值型別 (*函式指標名)(形參)

int* fn(int i);表示fn 是乙個函式,乙個具有int型別形參和int*型別返回值的函式

int*fn)(int i;表示fn是乙個函式指標,乙個指向具有int型別形參和int型別返回值函式的指標

練習:編寫乙個用於給指定陣列元素進行排序的函式;如:

void sort(int arr,int len)

擴充套件:man signal

函式的介紹:#include

typedef void (*sighandler_t)(int);

sighandler_t signal(int signum, sighandler_t handler);

函式的解析

typedef void (*)(int) sighandler_t;

=>typedef void (*sighandler_t)(int);

sighandler_t signal(int signum, sighandler_t handler);

=>void (*)(int)  signal(int signum,void (*)(int) handler)

=>void (*signal(int signum,void (*handler)(int)))  (int)

=>signal是乙個函式,乙個具有整型引數和函式指標引數的函式,並且這個函式的返回值型別也是乙個函式指標

第二個形參:乙個函式指標,指向 引數為int,返回值為void 的函式

返回值乙個函式指標,指向引數為int,返回值為void的函式

int i;定義乙個整型變數

int* p;定義乙個指向int型別變數的指標

int arr[n];定義乙個具有n個int型別元素的陣列

int* parr[n];定義乙個具有n個int*型別元素的陣列

int*qarr[n];定義乙個指標指向乙個長度為n,元素為int型別的陣列

int  fn(void);定義乙個不需要形參,返回值為int型別的函式

int* fn(void);定義乙個不需要形參返回值為int* 的函式

int*fn)(void;定義乙個指標,指向無參並且返回值為int的函式

int**ppi;二級指標,指向乙個儲存整型變數位址的一級指標

int* p; //野指標

int* p = null; //空指標

void* p;  //通用指標

int main(int argc,char* argv)

第乙個引數表示:執行程式時引數的個數;第二個引數表示:儲存每乙個引數的首位址

指標與陣列,指標陣列 陣列指標

int a 10 print n a p,a p a,a print n a 1 p,a 1 p a 1,a 1 a做乙個指標,步長為4,指向乙個元素,a做乙個指標,步長為40,指向乙個維陣列 int b 3 4 print n b p,b p,b p b,b,b print n b 1 p,b 1...

陣列 指標陣列與陣列指標

一 陣列型別 int a 10 printf a d,a 1 d n a,a 1 printf a d,a 1 d n a,a 1 輸出結果 2 陣列元素的首位址是常量,不能修改,這是為了釋放記憶體空間所必需的,否則找不到釋放記憶體空間的首位址了 3 定義乙個陣列型別 定義陣列型別的格式如下 typ...

指標陣列與陣列指標

1.指標陣列 指標陣列中每乙個元素都是乙個指標,也既是存放字串的首位址。所以指標陣列適合處理若干個長度不等的字串。定義的一般形式為 型別說明符 指標陣列名 陣列長度 例如 int p 3 宣告乙個陣列,指標陣列p,由3個int型別指標變數元素組成 從運算子的優先順序分析,由於 的優先順序大於 所以p...