c語(yǔ)言中函數(shù)指針的含義,c語(yǔ)言函數(shù)指針有什么用

c語(yǔ)言指針含義問題?

你不明白的是具體的用法!而不是含義!

成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設(shè)、成都網(wǎng)站制作與策劃設(shè)計(jì),三都網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:三都等地區(qū)。三都做網(wǎng)站價(jià)格咨詢:028-86922220

倒數(shù)第一個(gè),是一個(gè)函數(shù)指針直接用pfi=funcname;這句就可以指向一個(gè)函數(shù),調(diào)用函數(shù)的時(shí)候就用pfi();

上面指向函數(shù)的指針你了解了吧,函數(shù)名本身就是地址,要看它的本質(zhì)。比如數(shù)組,數(shù)組的名字比如a[10]中a就是一個(gè)地址,這就是它的本質(zhì)!

倒數(shù)第二個(gè),我把它變個(gè)形(其實(shí)還是一樣的):int* pfi();這樣你是不是就明白了?返回值是int*,名字叫pfi的這么一個(gè)函數(shù)!他和int,char,void聲明方法不都是一樣的?所以希望這個(gè)你懂了,好看下面。

正著數(shù)第四個(gè)不常用,但是你一看,加了個(gè)括號(hào),很明顯指向的類型char[]數(shù)組,這個(gè)只能吧指針名字寫在中間,本來你是可以看懂的!但是把指針寫在中間你就可能理解錯(cuò),其實(shí)指針類型就是char[]不要想太多,靈活一點(diǎn)!

還有第三個(gè),這個(gè)很明顯,如果沒加括號(hào),那變形(星號(hào)在空格前面還是后面都一樣)----char* acp[10];那你看,類型是不是char*?那么acp就是變量名,也就是說定義了一個(gè)指針,名字叫acp,但是?。?!后面有方括號(hào)10,啥意思--這是一個(gè)很平凡的數(shù)組,不過數(shù)據(jù)類型是指針而已?。?/p>

啊啊啊好累啊,回答不易.......呃我要猝死了快救我....

賞我點(diǎn)積分,采納!我就可以康復(fù)了!快我快.....

c語(yǔ)言指針是什么意思!

指針其實(shí)是一個(gè)整形變量,與其它數(shù)據(jù)不同的是,它的作用是用來存儲(chǔ)其它變量的地址。指針(Pointer)是編程語(yǔ)言中的一個(gè)對(duì)象,利用地址,它的值直接指向(points to)存在電腦存儲(chǔ)器中另一個(gè)地方的值。由于通過地址能找到所需的變量單元,可以說,地址指向該變量單元。

因此,將地址形象化的稱為“指針”。意思是通過它能找到以它為地址的內(nèi)存單元。

再打個(gè)比方:有個(gè)人讓你去麥當(dāng)勞幫我買個(gè)雪糕,那么麥當(dāng)勞是這個(gè)變量a,但是那個(gè)人現(xiàn)在把麥當(dāng)勞所在的地址寫在紙上給你,那么這張紙就可以看做一個(gè)指向麥當(dāng)勞的指針。

擴(kuò)展資料:

舉例說明:

int p; //這是一個(gè)普通的整型變量。

int *p; //首先從P 處開始,先與*結(jié)合,所以說明P 是一個(gè)指針,然后再與int 結(jié)合,說明指針?biāo)赶虻膬?nèi)容的類型為int 型.所以P是一個(gè)返回整型數(shù)據(jù)的指針。

int p[3]; //首先從P 處開始,先與[]結(jié)合,說明P 是一個(gè)數(shù)組,然后與int 結(jié)合,說明數(shù)組里的元素是整型的,所以P 是一個(gè)由整型數(shù)據(jù)組成的數(shù)組 。

int *p[3]; //首先從P 處開始,先與[]結(jié)合,因?yàn)槠鋬?yōu)先級(jí)比*高,所以P 是一個(gè)數(shù)組,然后再與*結(jié)合,說明數(shù)組里的元素是指針類型,然后再與int 結(jié)合,說明指針?biāo)赶虻膬?nèi)容的類型是整型的,所以P 是一個(gè)由返回整型數(shù)據(jù)的指針?biāo)M成的數(shù)組。

int (*p)[3]; //首先從P 處開始,先與*結(jié)合,說明P 是一個(gè)指針然后再與[]結(jié)合(與"()"這步可以忽略,只是為了改變優(yōu)先級(jí)),說明指針?biāo)赶虻膬?nèi)容是一個(gè)數(shù)組,然后再與int 結(jié)合,說明數(shù)組里的元素是整型的.所以P 是一個(gè)指向由整型數(shù)據(jù)組成的數(shù)組的指針。

int **p; //首先從P 開始,先與*結(jié)合,說是P 是一個(gè)指針,然后再與*結(jié)合,說明指針?biāo)赶虻脑厥侵羔?然后再與int 結(jié)合,說明該指針?biāo)赶虻脑厥钦蛿?shù)據(jù)。由于二級(jí)指針以及更高級(jí)的指針極少用在復(fù)雜的類型中,所以后面更復(fù)雜的類型就不考慮多級(jí)指針了,最多只考慮一級(jí)指針。

int p(int); //從P 處起,先與()結(jié)合,說明P 是一個(gè)函數(shù),然后進(jìn)入()里分析,說明該函數(shù)有一個(gè)整型變量的參數(shù),然后再與外面的int 結(jié)合,說明函數(shù)的返回值是一個(gè)整型數(shù)據(jù)。

Int (*p)(int); //從P 處開始,先與指針結(jié)合,說明P 是一個(gè)指針,然后與()結(jié)合,說明指針指向的是一個(gè)函數(shù),然后再與()里的int 結(jié)合,說明函數(shù)有一個(gè)int 型的參數(shù),再與最外層的int 結(jié)合,說明函數(shù)的返回類型是整型。

所以P 是一個(gè)指向有一個(gè)整型參數(shù)且返回類型為整型的函數(shù)的指針。

int *(*p(int))[3]; //可以先跳過,不看這個(gè)類型,過于復(fù)雜從P 開始,先與()結(jié)合,說明P 是一個(gè)函數(shù),然后進(jìn)入()里面,與int 結(jié)合,說明函數(shù)有一個(gè)整型變量參數(shù),然后再與外面的*結(jié)合,說明函數(shù)返回的是一個(gè)指針。

然后到最外面一層,先與[]結(jié)合,說明返回的指針指向的是一個(gè)數(shù)組。然后再與*結(jié)合,說明數(shù)組里的元素是指針,然后再與int 結(jié)合,說明指針指向的內(nèi)容是整型數(shù)據(jù).所以P 是一個(gè)參數(shù)為一個(gè)整數(shù)據(jù)且返回一個(gè)指向由整型指針變量組成的數(shù)組的指針變量的函數(shù).

參考資料:百度百科-指針

C語(yǔ)言中,指針函數(shù)和函數(shù)指針有什么區(qū)別?

在C語(yǔ)言中指針函數(shù)和函數(shù)指針是兩個(gè)不同的概念,不能混淆。

指針函數(shù)本質(zhì)上是函數(shù),是一個(gè)返回類型為指針的函數(shù),如:

int* max(int *array,int n)

{

//找最大值的地址

return 最大值的地址;

}

max就是一個(gè)指針函數(shù)。

而函數(shù)指針本質(zhì)上是指針,是指向函數(shù)的指針,如:

int (*funp)(int a,int b);

funp就是一個(gè)函數(shù)指針,可以用它指向一個(gè)返回類型為int、有兩個(gè)int類型的參數(shù)的函數(shù)。

C語(yǔ)言中的指針是什么意思?

其實(shí)與其你在這里問,還不如看一看c語(yǔ)言教科書,上面寫的都很詳細(xì)

以下是譚浩強(qiáng)版的

在計(jì)算機(jī)中,所有的數(shù)據(jù)都是存放在存儲(chǔ)器中的。一般把存儲(chǔ)器中的一個(gè)字節(jié)稱為一個(gè)內(nèi)存單元,不同的數(shù)據(jù)類型所占用的內(nèi)存單元數(shù)不等,如整型量占2個(gè)單元,字符量占1個(gè)單元等,在前面已有詳細(xì)的介紹。為了正確地訪問這些內(nèi)存單元,必須為每個(gè)內(nèi)存單元編上號(hào)。根據(jù)一個(gè)內(nèi)存單元的編號(hào)即可準(zhǔn)確地找到該內(nèi)存單元。內(nèi)存單元的編號(hào)也叫做地址。

既然根據(jù)內(nèi)存單元的編號(hào)或地址就可以找到所需的內(nèi)存單元,所以通常也把這個(gè)地址稱為指針。

內(nèi)存單元的指針和內(nèi)存單元的內(nèi)容是兩個(gè)不同的概念。

可以用一個(gè)通俗的例子來說明它們之間的關(guān)系。我們到銀行去存取款時(shí),

銀行工作人員將根據(jù)我們的帳號(hào)去找我們的存款單,

找到之后在存單上寫入存款、取款的金額。在這里,帳號(hào)就是存單的指針,

存款數(shù)是存單的內(nèi)容。對(duì)于一個(gè)內(nèi)存單元來說,單元的地址即為指針,其中存放的數(shù)據(jù)才是該單元的內(nèi)容。在C語(yǔ)言中,允許用一個(gè)變量來存放指針,這種變量稱為指針變量。因此,一個(gè)指針變量的值就是某個(gè)內(nèi)存單元的地址或稱為某內(nèi)存單元的指針。

嚴(yán)格地說,一個(gè)指針是一個(gè)地址,是一個(gè)常量。而一個(gè)指針變量卻可以被賦予不同的指針值,是變量。但常把指針變量簡(jiǎn)稱為指針。為了避免混淆,我們中約定:“指針”是指地址,是常量,“指針變量”是指取值為地址的變量。定義指針的目的是為了通過指針去訪問內(nèi)存單元。

既然指針變量的值是一個(gè)地址,那么這個(gè)地址不僅可以是變量的地址,也可以是其它數(shù)據(jù)結(jié)構(gòu)的地址。在一個(gè)指針變量中存放一個(gè)數(shù)組或一個(gè)函數(shù)的首地址有何意義呢?

因?yàn)閿?shù)組或函數(shù)都是連續(xù)存放的。通過訪問指針變量取得了數(shù)組或函數(shù)的首地址,也就找到了該數(shù)組或函數(shù)。這樣一來,凡是出現(xiàn)數(shù)組,函數(shù)的地方都可以用一個(gè)指針變量來表示,只要該指針變量中賦予數(shù)組或函數(shù)的首地址即可。這樣做,將會(huì)使程序的概念十分清楚,程序本身也精練,高效。在C語(yǔ)言中,一種數(shù)據(jù)類型或數(shù)據(jù)結(jié)構(gòu)往往都占有一組連續(xù)的內(nèi)存單元。

用“地址”這個(gè)概念并不能很好地描述一種數(shù)據(jù)類型或數(shù)據(jù)結(jié)構(gòu),而“指針”雖然實(shí)際上也是一個(gè)地址,但它卻是一個(gè)數(shù)據(jù)結(jié)構(gòu)的首地址,它是“指向”一個(gè)數(shù)據(jù)結(jié)構(gòu)的,因而概念更為清楚,表示更為明確。

這也是引入“指針”概念的一個(gè)重要原因。

C語(yǔ)言指針函數(shù)和函數(shù)指針詳細(xì)介紹

01

指針函數(shù)通常是指函數(shù)返回值是指針的一類函數(shù),如圖所示。

02

函數(shù)指針是指指向某個(gè)具體函數(shù)的指針變量,在程序設(shè)計(jì)時(shí)可以用來調(diào)用某個(gè)特定函數(shù)或者做某個(gè)函數(shù)的參數(shù)。其形式一般如圖:

03

指針函數(shù)與函數(shù)指針本質(zhì)上的區(qū)別是,指針函數(shù)是一個(gè)帶指針的函數(shù),總的來說還是一個(gè)函數(shù),如圖就是一個(gè)帶*name指針的函數(shù)

04

函數(shù)指針是指向函數(shù)的指針變量,本質(zhì)上還是一個(gè)指針,其格式如下,可以看到和指針函數(shù)的格式非常像,所以一定要用心留意。

網(wǎng)頁(yè)名稱:c語(yǔ)言中函數(shù)指針的含義,c語(yǔ)言函數(shù)指針有什么用
網(wǎng)頁(yè)網(wǎng)址:http://muchs.cn/article16/hcgsgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、網(wǎng)站導(dǎo)航、靜態(tài)網(wǎng)站品牌網(wǎng)站制作、品牌網(wǎng)站建設(shè)云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)