C語(yǔ)言中的任何函數(shù)形參都是值傳遞。所謂引用傳遞,不過(guò)是指針的值傳遞而已。你的函數(shù)做的工作只是交換函數(shù)中的兩個(gè)臨時(shí)變量a和b的值,結(jié)果不會(huì)影響到外部的實(shí)參pa和pb。

創(chuàng)新互聯(lián)技術(shù)團(tuán)隊(duì)十余年來(lái)致力于為客戶提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都品牌網(wǎng)站建設(shè)、營(yíng)銷(xiāo)型網(wǎng)站、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過(guò)多年發(fā)展,公司擁有經(jīng)驗(yàn)豐富的技術(shù)團(tuán)隊(duì),先后服務(wù)、推廣了上千余家網(wǎng)站,包括各類(lèi)中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。
C語(yǔ)言的函數(shù)形式參數(shù)是函數(shù)的局部變量,你把實(shí)參地址值傳給形參指針,在函數(shù)中交換只在函數(shù)中起作用,影響不到主調(diào)函數(shù)中實(shí)參指針的值。
就好像說(shuō):void change(int a){ a = 100;} 就算在函數(shù)里把a(bǔ)修改成100,return回去之后a以前該是什么還是什么。指針也是一樣,你swap的只是指針的值,而不是指針指向的值。
簡(jiǎn)單來(lái)說(shuō),p1和p2交換的是a和b的地址,原來(lái)p1是指向a的,p2指向b的,交換地址后p1指向b,p2指向b。所以輸出的是*p1==b;*p2==a。
首先,這個(gè)不是指針函數(shù) ,void *ptr(int * x,int * y ,int * z);才是指針函數(shù)。指針函數(shù)是函數(shù),只是函數(shù)返回的是個(gè)指針(地址)。
void swap(int p1,int p2){int p;p=p1;p1=p2;p2=p;} 只是交換了值而已。。同你的那個(gè),只是交換了pp2所代表的地址而已,真正的地址不會(huì)因此交換的。正道還是以改變實(shí)參指針變量所指變量的值 。沒(méi)辦法。
C所有的函數(shù)調(diào)用都是將實(shí)參的值“拷貝”給形參,所以指針也不例外。函數(shù)中改變形參指針的值改變的只是形參指針的指向,函數(shù)退出后都銷(xiāo)聲匿跡了,與實(shí)參指針無(wú)關(guān)。
1、不行,變量分配了地址,你要放到別的地址必須先申請(qǐng)才行,不能隨便改。
2、變量a的地址是不能變的,當(dāng)程序被加載時(shí),操作系統(tǒng)會(huì)為它分配好地址,且一經(jīng)分配,不能再改變!當(dāng)然,每一次程序運(yùn)行時(shí),操作系統(tǒng)為a分配的地址可以不同。
3、一個(gè)變量在申明的時(shí)候,系統(tǒng)就會(huì)給它分配一塊地址,這個(gè)地址是不會(huì)改變的,你可以修改這個(gè)變量的值,但是這個(gè)變量的地址你沒(méi)辦法修改它。也就是說(shuō),int a;的時(shí)候如果a的地址在0x0001,那么它永遠(yuǎn)在這里,無(wú)法改動(dòng)。
4、變量是存放在內(nèi)存中的,指針就是指向存放該變量的內(nèi)存地址。p是指向整形變量的指針,&是取地址運(yùn)算符,p = &i的意思就是:取i的內(nèi)存地址賦給p。
5、因?yàn)橹羔樀某跏蓟投x后再使用是不一樣的。當(dāng)像我假設(shè)的定義時(shí)就是錯(cuò)的,因?yàn)槌跏蓟褪且该骶唧w的類(lèi)型。因?yàn)椋羔樧兞勘硎疽盟赶虻膶?duì)象,那么該對(duì)象必須是確定(已經(jīng)指向了有內(nèi)存分配的類(lèi)型)的。
新聞名稱:c語(yǔ)言函數(shù)改變指針地址嗎 c語(yǔ)言改變指針指向
URL鏈接:http://chinadenli.net/article40/dsjiceo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、網(wǎng)站改版、商城網(wǎng)站、微信小程序、軟件開(kāi)發(fā)、關(guān)鍵詞優(yōu)化
聲明:本網(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)