日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

指向函數的指針

系統 2181 0
指向函數的指針變量的一般形式為:
數據類型?? (*指針變量名)(函數參數表列);
如:? int (*p)(int ,int );
1、int (*p)(int ,int );表示定義一個指向函數的指針變量p,它不是固定只能指向某一個函數。在一個程序中,一個指針變量可以先后指向同類型的不同函數。
2、給函數指針賦值時,只須給出函數名而不必給出參數。
如: p=max;如果寫成 p=max(a,b); 是將函數max(a,b);所得到的函數值賦給p,而不是將 函數入口賦給p
3、用函數指針變量調用函數時,只須將(*p)代替函數名即可。如: c=(*p)(a,b);
4、指向函數的指針變量,像p+n、p++、p--等運算是無意義的。
?
代碼:
輸入兩個整數,然后用戶選擇1或2,選1輸出較大值,選2輸出較小值。
程序代碼:
# include < stdio.h >
void main()
{
???? int max( int , int );
???? int min( int , int );
???? int ( * p)( int , int );
???? int a,b,c,n;

????printf( "please enter a and b:" );
????scanf( "%d%d" , & a, & b);
????printf( "please choose 1 or 2:" );
????scanf( "%d" , & n);

???? if (n == 1 )
????????p = max;
???? else if (n == 2 )
????????p = min;

????c = ( * p)(a,b);
????printf( "a=%d,b=%d," ,a,b);

???? if (n == 1 )
????????printf( "max=%d\n" ,c);
???? else
????????printf( "min=%d\n" ,c);
}


int max( int a, int b)
{
???? return a > b ? a : b;
}

int min( int a, int b)
{
???? return a < b ? a : b;
}
?

運行結果:

?

指向函數的指針 ?

?
實用價值在于 在應用程序中常用菜單提示輸出一個數字,然后根據不同值執行不同的功能 ,就是用此法。

?

指向函數的指針


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 双牌县| 易门县| 定安县| 内黄县| 鄱阳县| 衡东县| 崇州市| 达孜县| 荥阳市| 城步| 科尔| 和静县| 深水埗区| 郸城县| 龙泉市| 龙川县| 电白县| 郴州市| 平乡县| 新乐市| 双牌县| 湟中县| 青浦区| 乌苏市| 深圳市| 吉木乃县| 克山县| 岳阳市| 会理县| 卢湾区| 北辰区| 芜湖市| 安阳县| 南召县| 老河口市| 合山市| 安庆市| 克东县| 介休市| 饶河县| 黄陵县|