再論C語言中的函式和指標

2021-06-23 05:55:03 字數 604 閱讀 6857

1、我們可以用函式返回值來傳遞動態記憶體

char *getmemory3(int num) 

void test3(void) 

2、像下面這樣寫就會有錯誤

char *getstring(void) 

void test4(void) 

3、下面這樣寫設計概念是錯誤的,getstring2 內的「hello world」是常量字串,位於靜態儲存區,它在程式生命期內

恆定不變。無論什麼時候呼叫getstring2,它返回的始終是同乙個「唯讀」的記憶體塊。

char *getstring2(void) 

void test5(void) 

4、free後是野指標,要把p設定為null,否則出錯

char *p = (char *) malloc(100); 

strcpy(p, 「hello」); 

free(p);  // p  所指的記憶體被釋放,但是p所指的位址仍然不變

…if(p != null)  // 沒有起到防錯作用

5、new/delete的功能完全覆蓋了malloc/free,但c++程式經常要呼叫c函式,而c程式只能用malloc/free管理動態記憶體。

C語言中的函式指標

開啟去年6月的乙個test.cpp檔案,發現對裡面測試的函式指標幾乎沒有印象了。溫故而知新,於是重新找到ansi c 裡面的說明 除了宣告指向整型數字 雙精度型數字和c語言其他資料型別的指標外,指標也能夠被宣告指向乙個函式 包含乙個函式的位址 指向函式的指標是可能的,因為函式名像陣列名一樣,它們本身...

C語言中的函式指標

1.函式指標的定義 顧名思義,函式指標就是函式的指標。它是乙個指標,指向乙個函式。2.函式指標的使用 我們定義了乙個函式指標,但如何來使用它呢?先看如下例 include include char fun char p1,char p2 int i 0 i strcmp p1,p2 if 0 i r...

C語言中的函式指標 指向函式的指標

函式指標是什麼?在定義乙個函式之後,在編譯後,系統會為函式分配一段儲存空間。指標用來儲存位址的,而函式指標也是一樣,只不過儲存的是函式儲存空間的起始位址.如何在c語言中使用函式指標int p int int int代表的是指標變數名,兩個int代表,函式引數有兩個,且都為int型,當然以上定義只為示...