深入理解 C 指標 七 指標和函式的關係

2021-05-28 04:45:05 字數 558 閱讀 2303

可以把乙個指標宣告成為乙個指向函式的指標。

int fun1(char*,int);

int (*pfun1)(char*,int);

pfun1=fun1;

....

int a=(*pfun1)("abcdefg",7);//通過函式指標呼叫函式。

可以把指標作為函式的形參。在函式呼叫語句中,可以用指標表示式來作為實參。

例十三:

int fun(char*);

int a;

char str="abcdefghijklmn";

a=fun(str);

...

int fun(char*s)

return num; } 

這個例子中的函式fun統計乙個字串中各個字元的ascii碼值之和。前面說了,陣列的名字也是乙個指標。在函式呼叫中,當把str作為實參傳遞給形參 s後,實際是把str的值傳遞給了s,s所指向的位址就和str所指向的位址一致,但是str和s各自占用各自的儲存空間。在函式體內對s進行自加1運算,並不意味著同時對str進行了自加1運算。

深入理解C指標之三 指標和函式

原文 深入理解c指標之三 指標和函式 理解函式和指標的結合使用,需要理解程式棧。大部分現代的塊結構語言,比如c,都用到了程式棧來支援函式的執行。呼叫函式時,會建立函式的棧幀並將其推到程式棧上。函式返回時,其棧幀從程式棧上彈出。在使用函式時,有兩種情況指標很有用。一種是將指標作為引數傳遞給函式,函式可...

深入理解C指標之三 指標和函式

原文 深入理解c指標之三 指標和函式 理解函式和指標的結合使用,需要理解程式棧。大部分現代的塊結構語言,比如c,都用到了程式棧來支援函式的執行。呼叫函式時,會建立函式的棧幀並將其推到程式棧上。函式返回時,其棧幀從程式棧上彈出。在使用函式時,有兩種情況指標很有用。一種是將指標作為引數傳遞給函式,函式可...

深入理解C指標之四 指標和陣列

原文 深入理解c指標之四 指標和陣列 陣列是c內建的基本資料結構,陣列表示法和指標表示法緊密關聯。一種常見的錯誤認識是陣列和指標完全可以互換,儘管陣列名字有時可以當做指標來用,但陣列的名字不是指標。陣列和指標的區別之一就是,儘管陣列的名字可以返回陣列位址,但是名字不能作為賦值操作的目標。陣列是能用索...