指針一大特點是,對一個函數(shù)而言能實現(xiàn)多個返回值!
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、網(wǎng)絡空間、營銷軟件、網(wǎng)站建設、欒城網(wǎng)站維護、網(wǎng)站推廣。
同時指針在某些情況下與數(shù)組有共通之處!
它能直接對一個內(nèi)存進行操作,在加密技術上也有不小的作用力!
…………還有很多,程序寫的越多就越會感覺指針的重要作用的。
字符串處理的頭文件:string.h(希望對你有幫助)
掌握指針的使用,可以使程序簡簡潔、緊湊、高效。其實指針使用起來更簡潔一點,它能直接訪問內(nèi)存單元地址。
以下是摘錄的:
1.指針是C語言中一個重要的組成部分,使用指針編程有以下優(yōu)點:
(1)提高程序的編譯效率和執(zhí)行速度。
(2)通過指針可使用主調函數(shù)和被調函數(shù)之間共享變量或數(shù)據(jù)結構,便于實現(xiàn)雙向數(shù)據(jù)通訊。
(3)可以實現(xiàn)動態(tài)的存儲分配。
(4)便于表示各種數(shù)據(jù)結構,編寫高質量的程序。
2.我舉個例子,例如你申請了10個int變量的數(shù)組,一共是 sizeof(int) * 10 那么多字節(jié)的空間。但是你需要從 第二個自己開始操作,而不是從下一個int開始(下一個int應該下一個int變量的地址,也就是偏移sizeof(int)個字節(jié)),這時候沒有指針你根本無法做到。
為什么要做這么奇怪的操作?為什么申請了10個int變量,但是操作時卻從第二個字節(jié)開始,而不是第二個int變量開始?因為很多算法,包括加解密、壓縮、圖形圖像、科學計算、網(wǎng)絡通訊……領域,都需要按字節(jié)訪問源數(shù)據(jù),而不是根據(jù)你申請的變量類型來訪問。
首先你要認識函數(shù)傳參是怎么進行的
函數(shù)傳參是復制形的,舉個例子說:
void modify(int a)
{
a++;
}
void main()
{
int a=5;
modify(a);
printf("%d",a);
}
這個程序的答案還是5。為什么?
因為當調用modify(a)時,在執(zhí)行modify函數(shù)時,是另外開辟了一個內(nèi)存空間,將main中a的值復制過來,modify函數(shù)中所有的操作都是相對于這個新開辟的內(nèi)存空間而言的,對原來的a沒有任何改變。
現(xiàn)在就來說說指針,如果用指針傳參的話那就完全不一樣了,指針(pointer),說白了即是指向變量內(nèi)存地址。同樣上面的例子:
void modify(int * a)
{
(*a)++;
}
void main()
{
int a=5;
modify(a);
printf("%d",a);
}
這個答案當然是6
因為你傳進去的是a的地址,所以在modify函數(shù)中的操作都是對a地址上的內(nèi)容進行操作,即是操作a所以modify函數(shù)不用返回這個數(shù),main中a的值也會改變。因為大家都是操作同一個內(nèi)存空間,而上面不用指針,modify操作的是另一個新開辟的內(nèi)存空間,只是這個內(nèi)存空間初始值和a一樣。
現(xiàn)在來說說傳參,其實你“為什么函數(shù)參數(shù)是字符串的多用指針?” 那句我不是很明白,C中的字符串傳參好像就指針一種形式(除非用結構體)。
何時用指針,何時用拷貝。當傳的參數(shù)是一個結構體,而這個結構體比較大,這時最好用指針,因為如果用拷貝的話,單單花在拷貝的時間就要浪費很多,而如果這個函數(shù)經(jīng)常被調用,那么這效率問題就出現(xiàn)了。
你在子函數(shù)中要對你的主調用函數(shù)中變量進行操作時也可以用指針做參數(shù),這樣子函數(shù)就可以不用return 如果不是用指針的話,就要再子函數(shù)的未尾加上一條return x;把這個數(shù)返回當返回值。
多看點書,多寫點程序,剛開始學都會對指針比較迷茫。寫多了,自然而然就懂了。
標題名稱:c語言函數(shù)指針優(yōu)點 c語言指針函數(shù)調用例子
路徑分享:http://jinyejixie.com/article40/doppjeo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、品牌網(wǎng)站建設、網(wǎng)頁設計公司、App設計、定制網(wǎng)站、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)