c指標陣列與陣列指標與指標函式與函式指標筆記

2021-07-11 08:06:10 字數 1874 閱讀 3415

#include

#include

typedef struct t_ooxx

t_ooxx, *pt_ooxx;

//測試陣列指標 

void test_ooxx_arrayp(t_ooxx (*p), int num)

//測試指標陣列 

void test_ooxx_parray(t_ooxx **p, int num)

//測試函式指標 

char *test_ooxxfp(void)

//測試指標函式變數 

double (*test_ooxxpf)(t_ooxx *p, int num);  //定義乙個指標函式變數 

typedef  double (*test_ooxxpf_type)(t_ooxx *p, int num); //宣告指標函式型別 

/* 定義乙個與指標函式相同形式的測試函式(一般為處理函式)  */ 

double ****_fhandle(t_ooxx *p, int num)

//測試指標函式作為引數 

//void * test_ooxx(double (*p)(t_ooxx *ooxx, int num) , int num)

void * test_ooxx_pm(test_ooxxpf_type p, int num) //也可以這樣使用 宣告的指標函式型別 

;p(&ooxx, 9); //草做,執行函式 

printf("testing parameter is pf.\n");

} int main()

;char *ip = "192.168.1.1";

/* 1 陣列指標 */

t_ooxx  (*ooxx)[9] = null;

/* if use malloc, sample...*/

ooxx = (t_ooxx (*))malloc( 1 * sizeof(t_ooxx)); //指標使用前,要確保指向合法位址 

free(ooxx);

/* 一維陣列,與二維陣列的測試 */ 

#if 1

t_ooxx testap[9] =

};ooxx =  testap; //即&testap[0]

#else

t_ooxx testap[9]; //testap[3], error 要指向的陣列包含9個元素 

testap[0].ip = ip;

testap[0].w  = 12;

testap[0].h  = 34;

ooxx =  &testap; //取陣列的位址 

#endif 

test_ooxx_arrayp(ooxx, sizeof(ooxx) / sizeof(ooxx[0]));

/* 2 指標陣列 */ 

t_ooxx  *ooxx2[9] = ;   

t_ooxx testpa = ;

ooxx2[0] = &testpa;  //陣列裡面存放指標的位址 

test_ooxx_parray(ooxx2, 9);

/* 3 函式指標 */

char *t;

t = test_ooxxfp(); 

printf("the answer is %s\n", t);

/*4 指標函式*/

/*4.1 給指標函式變數賦值 */

test_ooxxpf = ****_fhandle; // or test_ooxxpf = &****_fhandle;

/*4.2 指標函式變數作為引數*/

test_ooxx_pm(****_fhandle, 9); //

test_ooxx(test_ooxxpf, 9); 

return 0;

}

指標與陣列與函式指標

變數的本質是一段儲存空間的別名,指標的本質是一種特殊型別的變數,這種變數的儲存空間中儲存的是另乙個變數的位址。號的意義 號代表所申明的變數是指標 號表示取指標所指向記憶體空間的值。該使用傳值呼叫還是傳址呼叫 當函式內部需要改變實參的值,則需要使用傳址呼叫 如果函式需要傳入的引數型別複雜,體積巨大,又...

C 指標陣列與陣列指標

說實話,c語言真的很讓人蛋疼,它不像物件導向的語言,我們重心在設計程式上。而使用c語言,你不僅要考慮程式的設計,你還要考慮很多他的使用細節,不然一不小心你怎麼死的都不知道。但是,個人感覺,c語言的魅力是其他任何語言都比不了的!繼續看。陣列指標 範例 typedef int aint5 5 typed...

C 指標陣列與陣列指標

陣列指標 也稱行指標 陣列指標 a pointer to an array,即指向陣列的指標 定義 int p n 優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p 1時,p要跨過n個整型資料的長度。如要將二維陣列賦給一指標,應這樣...