最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

如何理解typedef函數(shù)指針?

2023-07-04 21:44 作者:零壹ZLZ  | 我要投稿

1、什么是函數(shù)指針

????????函數(shù)指針函數(shù)指針變量的簡(jiǎn)稱,其實(shí)質(zhì)是一個(gè)變量,就像 ? int a; ?中的a一樣,指針即地址,所以函數(shù)指針可以理解為“存放函數(shù)入口地址的變量”。舉個(gè)栗子:

int sum(int a, int b)

{

? ?return (a+b);

}

void main()

{

????????int (*p)(int, int); ? ? //定義了一個(gè)函數(shù)指針P

????????int a = 0;

????????p = sum;

????????a = (*p)(10,20);

????????printf(”%d\\n”,a);

}

????????代碼中,語(yǔ)句int (*p)(int, int);定義了一個(gè)函數(shù)指針變量p,它指向的函數(shù)返回值類型為int,函數(shù)的參數(shù)為兩個(gè)int型。換句話說(shuō),變量p可以存返回值為int,形參為兩個(gè)int型的函數(shù)的地址,上例中就是把函數(shù)sum的地址(即函數(shù)名)賦給了p;

2、函數(shù)指針的數(shù)據(jù)類型

????????我們知道C語(yǔ)言中的變量都有其對(duì)應(yīng)的數(shù)據(jù)類型,比如:int a = 0; ? char b;其中變量a的數(shù)據(jù)類型為int,變量b的數(shù)據(jù)類型為char,那么int (*p)(int, int);中變量p的數(shù)據(jù)類型是什么?這里p 的數(shù)據(jù)類型就是int (*)(int, int) ,是的,就是把p去掉,剩下的就是數(shù)據(jù)類型。

????????現(xiàn)在再來(lái)理解typedef函數(shù)指針。

??比如,typedef int (*abc)(int, int); 這里是定義數(shù)據(jù)類型int (*)(int, int) 為別名abc,即可以用abc表示數(shù)據(jù)類型int (*)(int, int)了。如何使用?再舉個(gè)栗子:

typedef int (*alias)(int, int);

int sum(int a, int b)

{

??return (a+ b);

}

void main()

{

????????alias p = sum;

????????int a = 0;

????????a = (*p)(10,20);

????????printf(”%d\\n”,a);

}

代碼第一行重新定義了函數(shù)指針數(shù)據(jù)類型int (*)(int, int)alias ,然后在main函數(shù)中用該類型別名alias?定義了函數(shù)指針p,運(yùn)行結(jié)果和上個(gè)例子中一樣。

舉一反一,typedef數(shù)組指針也類似。


如何理解typedef函數(shù)指針?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
平江县| 永康市| 永和县| 邢台县| 日喀则市| 会同县| 余江县| 吴忠市| 五常市| 铁力市| 安图县| 南和县| 嘉善县| 宣恩县| 洞头县| 五台县| 三原县| 永州市| 瑞金市| 峨眉山市| 比如县| 广水市| 凤台县| 垣曲县| 昭通市| 武平县| 大港区| 昂仁县| 冷水江市| 逊克县| 海晏县| 伊川县| 徐水县| 灵山县| 额尔古纳市| 那坡县| 南靖县| 岚皋县| 永嘉县| 德兴市| 澄城县|