當前位置:首頁 » 編程語言 » c語言函數指針視頻
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言函數指針視頻

發布時間: 2022-08-16 14:19:02

1. c語言 函數指針

加個注釋吧:

/*
函數x
參數1:類型int未標注形參
參數2:類型void(*)(int)形參y
返回值:類型void(*)(int)
*/
void(*x(int,void(*y)(int)))(int);

其中 「void(*)(int)" 代表接收一個int參數返回類型為void的函數指針類型,比如:

voidfoo(inti)
{
printf("%d",i);
}

所以你可以這樣調用它:

...
void(*pf)(int);
inti=0;
pf=x(i,&foo);
...

2. C語言函數指針調用

void point(char *p){ p+=3; } //加上void比較好

char b[4]={'a','b','c','d'}, *p=b; //寫在同一行,p是char*的

point(p);// 這里傳遞的是指針,在函數裡面改指針是「臨時變數」,不是局部變數
//臨時對象不會被記錄,如果改p指向的內存就可以被記錄。

printf("%c\n", *p); // 輸出結果為a,因為p是扔指向b[]其實位置

答案為a

3. C語言,函數指針

不能. *f(int no)返回的是一個指針,void (指針)();是指針函數,而非函數指針。

函數指針示例:

int(*f)(intx);/*聲明一個函數指針*/
f=func;/*將func函數的首地址賦給指針f*/
intm=f(10);/*調用方法與調用本身沒區別*/


LRESULT(*f)();//這個是申明函數指針
f=MyProc;//記住不要括弧
LRSULTx=f();//就這樣調用

4. C語言指針函數

char *match (char*s,char ch1,char ch2)
函數各部分的含義:
第一個char,一般是代表函數的返回值是一個字元。但是它後面有一個*,應該把char和*連起來看,就是char*了。
那麼,第一個就是char*,代表函數的返回值是一個字元指針(地址)。
match是函數的名字。
括弧內是函數的參數,多個參數用逗號分隔。本例共有3個參數:char*s,char ch1,char ch2,第一個是s,類型為char*型(字元指針型),後兩個ch1、ch2都是char型(字元型)。

到這兒,你就知道去掉*match前的*為什麼就不對了。
另外,括弧里參數類型(如包含指針)跟函數返回值的類型無關。函數名前加不加*只與函數返回值的類型有關。

5. c語言函數指針

#include "stdio.h"
int max(int x,int y)
{
return x>y?x:y;
}

void main()
{
int a=1,b=2;
int (*fun)(int,int);

fun = max;
// 下邊兩行結果一樣
printf("call max=%d\n", fun(a,b)); // 調用max()
printf("call max=%d\n", (*fun)(a,b)); // 調用max()
// 下邊四行結果一樣
printf("max address:%p\n", max); // 函數地址
printf("max address:%p\n", &max); // 函數地址
printf("max address:%p\n", fun); // 函數指針
printf("max address:%p\n", *fun); // 函數指針
}

6. C語言中的函數指針

函數指針是定義一個指向函數的指針,形式為:void (*p)(void);
一般用法:
int fun1(int x);
int fun2(int x);
char fun3(int x);
int fun4(char x);
int main(void)
{
int (*p)(int x);
p=fun1; //指向fun1
p(2) //這時等價於fun1(2)
p=fun2; //也可以指向fun2


但是注意了,p=fun3;和p=fun4都是錯誤的,參數類型跟返回類型必須一樣。

至於指針函數,就是返回一個指針的函數。
基本形式:int *fun(void);
一般用法:
int *fun(void);
int main(void)
{
int *p=NULL; //聲明一個整型指針變數
p=fun(); //接收fun()的返回值

7. C語言函數指針

scanf("%d\n",&m);
改為:
scanf("%d",&m);即可。
scanf()函數是以回車或者空格或者tab鍵作為輸入結束,所以輸入格式中千萬不要加\n,否則程序一直會處在等待輸入結束狀態,輸入再多的回車鍵都會被看成輸入數值後的一個輸入(即("%d\n"中的\n)而不是被看成輸入結束,也就是說輸入永遠沒有結束,程序永遠不會繼續下去。

8. C語言中關於指向函數指針的問題

他視頻上沒帶參數是因為他那個是無參函數吧。
聲明函數指針的時候,你要把參數類型寫清楚,因為C要進行語法檢查的,參數類型或個數不同,編譯器認為是2個不同的函數指針類型,報錯就是類型不匹配。