中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

c語(yǔ)言函數(shù)指針優(yōu)點(diǎn) c語(yǔ)言指針函數(shù)調(diào)用例子

C語(yǔ)言指針的好處

指針一大特點(diǎn)是,對(duì)一個(gè)函數(shù)而言能實(shí)現(xiàn)多個(gè)返回值!

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)絡(luò)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、欒城網(wǎng)站維護(hù)、網(wǎng)站推廣。

同時(shí)指針在某些情況下與數(shù)組有共通之處!

它能直接對(duì)一個(gè)內(nèi)存進(jìn)行操作,在加密技術(shù)上也有不小的作用力!

…………還有很多,程序?qū)懙脑蕉嗑驮綍?huì)感覺(jué)指針的重要作用的。

字符串處理的頭文件:string.h(希望對(duì)你有幫助)

指針的優(yōu)越性在哪?

掌握指針的使用,可以使程序簡(jiǎn)簡(jiǎn)潔、緊湊、高效。其實(shí)指針使用起來(lái)更簡(jiǎn)潔一點(diǎn),它能直接訪問(wèn)內(nèi)存單元地址。

以下是摘錄的:

1.指針是C語(yǔ)言中一個(gè)重要的組成部分,使用指針編程有以下優(yōu)點(diǎn):

(1)提高程序的編譯效率和執(zhí)行速度。

(2)通過(guò)指針可使用主調(diào)函數(shù)和被調(diào)函數(shù)之間共享變量或數(shù)據(jù)結(jié)構(gòu),便于實(shí)現(xiàn)雙向數(shù)據(jù)通訊。

(3)可以實(shí)現(xiàn)動(dòng)態(tài)的存儲(chǔ)分配。

(4)便于表示各種數(shù)據(jù)結(jié)構(gòu),編寫(xiě)高質(zhì)量的程序。

2.我舉個(gè)例子,例如你申請(qǐng)了10個(gè)int變量的數(shù)組,一共是 sizeof(int) * 10 那么多字節(jié)的空間。但是你需要從 第二個(gè)自己開(kāi)始操作,而不是從下一個(gè)int開(kāi)始(下一個(gè)int應(yīng)該下一個(gè)int變量的地址,也就是偏移sizeof(int)個(gè)字節(jié)),這時(shí)候沒(méi)有指針你根本無(wú)法做到。

為什么要做這么奇怪的操作?為什么申請(qǐng)了10個(gè)int變量,但是操作時(shí)卻從第二個(gè)字節(jié)開(kāi)始,而不是第二個(gè)int變量開(kāi)始?因?yàn)楹芏嗨惴ǎ咏饷?、壓縮、圖形圖像、科學(xué)計(jì)算、網(wǎng)絡(luò)通訊……領(lǐng)域,都需要按字節(jié)訪問(wèn)源數(shù)據(jù),而不是根據(jù)你申請(qǐng)的變量類型來(lái)訪問(wèn)。

C語(yǔ)言 指針做函數(shù)參數(shù) 的優(yōu)點(diǎn)

首先你要認(rèn)識(shí)函數(shù)傳參是怎么進(jìn)行的

函數(shù)傳參是復(fù)制形的,舉個(gè)例子說(shuō):

void modify(int a)

{

a++;

}

void main()

{

int a=5;

modify(a);

printf("%d",a);

}

這個(gè)程序的答案還是5。為什么?

因?yàn)楫?dāng)調(diào)用modify(a)時(shí),在執(zhí)行modify函數(shù)時(shí),是另外開(kāi)辟了一個(gè)內(nèi)存空間,將main中a的值復(fù)制過(guò)來(lái),modify函數(shù)中所有的操作都是相對(duì)于這個(gè)新開(kāi)辟的內(nèi)存空間而言的,對(duì)原來(lái)的a沒(méi)有任何改變。

現(xiàn)在就來(lái)說(shuō)說(shuō)指針,如果用指針傳參的話那就完全不一樣了,指針(pointer),說(shuō)白了即是指向變量?jī)?nèi)存地址。同樣上面的例子:

void modify(int * a)

{

(*a)++;

}

void main()

{

int a=5;

modify(a);

printf("%d",a);

}

這個(gè)答案當(dāng)然是6

因?yàn)槟銈鬟M(jìn)去的是a的地址,所以在modify函數(shù)中的操作都是對(duì)a地址上的內(nèi)容進(jìn)行操作,即是操作a所以modify函數(shù)不用返回這個(gè)數(shù),main中a的值也會(huì)改變。因?yàn)榇蠹叶际遣僮魍粋€(gè)內(nèi)存空間,而上面不用指針,modify操作的是另一個(gè)新開(kāi)辟的內(nèi)存空間,只是這個(gè)內(nèi)存空間初始值和a一樣。

現(xiàn)在來(lái)說(shuō)說(shuō)傳參,其實(shí)你“為什么函數(shù)參數(shù)是字符串的多用指針?” 那句我不是很明白,C中的字符串傳參好像就指針一種形式(除非用結(jié)構(gòu)體)。

何時(shí)用指針,何時(shí)用拷貝。當(dāng)傳的參數(shù)是一個(gè)結(jié)構(gòu)體,而這個(gè)結(jié)構(gòu)體比較大,這時(shí)最好用指針,因?yàn)槿绻每截惖脑?,單單花在拷貝的時(shí)間就要浪費(fèi)很多,而如果這個(gè)函數(shù)經(jīng)常被調(diào)用,那么這效率問(wèn)題就出現(xiàn)了。

你在子函數(shù)中要對(duì)你的主調(diào)用函數(shù)中變量進(jìn)行操作時(shí)也可以用指針做參數(shù),這樣子函數(shù)就可以不用return 如果不是用指針的話,就要再子函數(shù)的未尾加上一條return x;把這個(gè)數(shù)返回當(dāng)返回值。

多看點(diǎn)書(shū),多寫(xiě)點(diǎn)程序,剛開(kāi)始學(xué)都會(huì)對(duì)指針比較迷茫。寫(xiě)多了,自然而然就懂了。

標(biāo)題名稱:c語(yǔ)言函數(shù)指針優(yōu)點(diǎn) c語(yǔ)言指針函數(shù)調(diào)用例子
路徑分享:http://www.rwnh.cn/article40/doppjeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、品牌網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司、App設(shè)計(jì)、定制網(wǎng)站建站公司

廣告

聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
时尚| 灵宝市| 大新县| 沅陵县| 福建省| 县级市| 化德县| 红河县| 望城县| 中江县| 大同县| 克拉玛依市| 德阳市| 顺义区| 阿荣旗| 聂拉木县| 罗源县| 新巴尔虎左旗| 兰西县| 鄂托克旗| 翁牛特旗| 诸城市| 隆德县| 永兴县| 苗栗县| 铜梁县| 肥东县| 梨树县| 万全县| 东阳市| 旅游| 临湘市| 吴堡县| 健康| 仪陇县| 朝阳市| 江门市| 谷城县| 林口县| 香格里拉县| 本溪|