舉個兩個整數(shù)加法的例子,希望對你有幫助:
創(chuàng)新互聯(lián)建站專注于武江企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,成都商城網(wǎng)站開發(fā)。武江網(wǎng)站建設(shè)公司,為武江等地區(qū)提供建站服務(wù)。全流程按需定制設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
#include stdio.h#include conio.h
//聲明指向函數(shù)的指針類型fpAdd,該類型的函數(shù),有兩個整數(shù)作為參數(shù),返回值是一個整數(shù)。
//其他類型的函數(shù)指針聲明方式類似,即:typedef 函數(shù)返回值類型 (*函數(shù)指針類型名稱)(函數(shù)參數(shù)列表);
typedef int (*fpAdd)(int a,int b);
//聲明兩個和fpAdd類型一致的函數(shù)
int AddTest(int a,int b);
int AddTestAdd5(int a,int b);
//聲明兩個返回函數(shù)指針的函數(shù)
fpAdd GetAddFun();
fpAdd GetAdd5Fun();
void main()
{
int a = 1;
int b = 2;
int sum;
//取得指向函數(shù)(AddTest)的指針
fpAdd add = GetAddFun();
//取得指向函數(shù)(AddTestAdd5)的指針
fpAdd add5 = GetAdd5Fun();
//通過函數(shù)指針調(diào)用函數(shù)。
sum = add(a,b);
//輸出結(jié)果
printf("a+b=%d\n",sum);
sum = add5(a,b);
//輸出結(jié)果
printf("a+b=%d\n",sum);
getch();}
int AddTest(int a,int b)
{
return a+b;
}
int AddTestAdd5(int a,int b)
{
return a+b+5;
}
fpAdd GetAddFun()
{
return AddTest;
}
fpAdd GetAdd5Fun()
{
return AddTestAdd5;
}
struct student *p, *q, *head;
這里head不就是 struct student 類型的指針么。
這種方式叫做“用指針函數(shù)*creat()的返回值來傳遞動態(tài)內(nèi)存”,這是一個C語法
首先你要注意,子函數(shù)*creat()用了malloc動態(tài)申請內(nèi)存,而return返回的是指針變量所指向的地址,而不是指針!相當(dāng)于將你所申請的動態(tài)內(nèi)存返回給主函數(shù)
int
*fun(void)//這里是指針函數(shù)
{
int
*p
=
(int
*)
malloc
(int);//動態(tài)申請內(nèi)存//p在這里指向了一塊合法內(nèi)存的地址
return
p;
}
void
main(void)
{
int
*q
=
NULL;
q
=
fun();//fun()返回指針p所指向的地址,(指針p是在棧上創(chuàng)建的,所以*fun()函數(shù)運(yùn)行完,指針?biāo)峙涞膬?nèi)存被系統(tǒng)自動釋放)這時q指向p,得到了malloc所申請到的內(nèi)存
free(q);//釋放動態(tài)內(nèi)存
}
void定義過后的函數(shù)不是說它沒有返回值,而是它返回的是個空,也就是null,可以加return
null,也可以不加。當(dāng)你定義函數(shù)時看最后你需不需要用到這個函數(shù)最后的結(jié)果,如果不需要就可以給這個函數(shù)定義void,如果需要則相應(yīng)的加上它的返回類型。每個函數(shù)在定義的時候都要加返回類型,不需要返回值則定義為void,記住null并不是代表它沒有返回值,而是返回的是空,只有在java或者c#它們的構(gòu)造函數(shù)才是唯一沒有返回值的函數(shù)。
文章題目:c語言返回值函數(shù)指針,c語言返回字符串指針
當(dāng)前URL:http://chinadenli.net/article4/hdosie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、Google、全網(wǎng)營銷推廣、動態(tài)網(wǎng)站、做網(wǎng)站、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)