指針指向地址,指針的特性就是在地址不變的情況下,可以很方便的修改所指向的內(nèi)容

創(chuàng)新互聯(lián)從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元惠東做網(wǎng)站,已為上家服務(wù),為惠東各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
最重要的應(yīng)用有兩個(gè),一是函數(shù)參數(shù),二是函數(shù)指針
函數(shù)參數(shù):函數(shù)返回值只有一個(gè),如果想回傳多個(gè)參數(shù),則必須使用指針
函數(shù)指針:典型應(yīng)用就是回調(diào)函數(shù)(callback)
函數(shù)指針是指向函數(shù)的指針變量。 因而“函數(shù)指針”本身首先應(yīng)是指針變量,只不過該指針變量指向函數(shù)。這正如用指針變量可指向整型變量、字符型、數(shù)組一樣,這里是指向函數(shù)。
函數(shù)指針有兩個(gè)用途:調(diào)用函數(shù)和做函數(shù)的參數(shù)。
函數(shù)指針的聲明方法為:
返回值類型 ( *?指針變量名) ([形參列表]);
如:
int func(int x); /* 聲明一個(gè)函數(shù) */
int (*f) (int x); /* 聲明一個(gè)函數(shù)指針 */
f=func; /* 將func函數(shù)的首地址賦給指針f */
或者使用下面的方法將函數(shù)地址賦給函數(shù)指針:
f = func;
賦值時(shí)函數(shù)func不帶括號(hào),也不帶參數(shù),由于func代表函數(shù)的首地址,因此經(jīng)過賦值以后,指針f就指向函數(shù)func(x)的代碼的首地址。
下面的程序說明了函數(shù)指針調(diào)用函數(shù)的方法:
#includestdio.h
int?max(int?x,int?y){return?(xy??x:y);}
int?main()
{
int?(*ptr)(int,?int);
int?a,?b,?c;
ptr?=?max;
scanf("%d%d",?a,?b);
c?=?(*ptr)(a,b);
printf("a=%d,?b=%d,?max=%d",?a,?b,?c);
return?0;
}
指針的用途非常廣泛,比如如果你想通過函數(shù)改變一個(gè)變量的值,就得用指針而不能用值傳遞。還有在很多時(shí)候變量,特別是對(duì)象的數(shù)據(jù)量實(shí)在太大,程序員就會(huì)用指針來做形參,只需要傳遞一個(gè)地址就行,大大提高了效率。簡單地說指針就是指向變量和對(duì)象的地址。
基本說明:
1、在計(jì)算機(jī)中,所有的數(shù)據(jù)都是存放在存儲(chǔ)器中的。 一般把存儲(chǔ)器中的一個(gè)字節(jié)稱為一個(gè)內(nèi)存單元, 不同的數(shù)據(jù)類型所占用的內(nèi)存單元數(shù)不等,如整型量占2個(gè)單元,字符量占1個(gè)單元等;
2、為了正確地訪問這些內(nèi)存單元,須為每個(gè)內(nèi)存單元編上號(hào)。 根據(jù)一個(gè)內(nèi)存單元的編號(hào)即可準(zhǔn)確地找到該內(nèi)存單元。既然根據(jù)內(nèi)存單元的編號(hào)或地址就可以找到所需的內(nèi)存單元,所以通常也把這個(gè)地址稱為指針。內(nèi)存單元的指針和內(nèi)存單元的內(nèi)容是兩個(gè)不同的概念。
分享名稱:c語言函數(shù)指針的用途,c語言函數(shù)指針的用途有哪些
網(wǎng)頁路徑:http://chinadenli.net/article15/dsiiggi.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、建站公司、關(guān)鍵詞優(yōu)化、網(wǎng)站排名、網(wǎng)站策劃、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)