1、int i=3,*p=&i,**r=//r保存指針p的地址。
網(wǎng)站的建設(shè)創(chuàng)新互聯(lián)建站專注網(wǎng)站定制,經(jīng)驗(yàn)豐富,不做模板,主營網(wǎng)站定制開發(fā).小程序定制開發(fā),H5頁面制作!給你煥然一新的設(shè)計(jì)體驗(yàn)!已為酒店設(shè)計(jì)等企業(yè)提供專業(yè)服務(wù)。
2、C語言主要靠函數(shù)調(diào)用和return在函數(shù)之間切換,很難做到在多層調(diào)用中直接返回主函數(shù)。雖然goto語句可以無條件跳轉(zhuǎn),但是必須在同一個(gè)函數(shù)中使用。
3、首先,C里傳給函數(shù)的都是“值傳遞”,換句話說都是拷貝,包括傳遞指針。當(dāng)傳遞給函數(shù)的指針時(shí),在函數(shù)里對(duì)指針本身的操作,如什么交換、賦值、增量等等,都不會(huì)影響到主調(diào)函數(shù)中被傳過來的指針變量的值。
4、指針說白了就是和變量一樣的東西。指針就是存儲(chǔ)了內(nèi)存地址。比如你輸出個(gè)指針。
首先,就是最基本的知識(shí),寫頭文件、函數(shù)聲明、定義變量。下面還需要定義指針,需要定義兩個(gè)指針p1和p2,然后把a(bǔ)的地址賦值給p1,把b的地址賦值給p2。
include stdio.h// 交換給定指針指向整型變量的值。
第一種當(dāng)然沒問題,問題是你寫錯(cuò)一個(gè)地方,{int m,n,t;改成 {int m,n,*t;t要作為指針的交換變量,那t本身也得定義為指針類型。
/ 編寫c語言程序,實(shí)現(xiàn)交換兩個(gè)變量值的操作。要求:使用形參為指針的函數(shù)swap完成交換功能。主函數(shù)中,使用整型指針從鍵盤輸入兩個(gè)整數(shù),通過調(diào)用swap完成交換 輸出交換前后的變量值進(jìn)行比較。
在 huan(int *p1,int *p2)這個(gè)函數(shù)中,交換的只是兩個(gè)指針的指向,但是函數(shù)的結(jié)束、返回,這兩個(gè)指針本身就消失了(它們的值并不會(huì)傳回到main()函數(shù)中)所以,最后的結(jié)果沒有交換。
主函數(shù)里指針p指向變量a的地址,q指向變量b的地址,p=a,*q=b,這應(yīng)該沒問題吧。change函數(shù)的形參分別是取a的地址和b的地址,然后用第三個(gè)變量t來實(shí)現(xiàn)值交換。再打印就是互換后的值。
在C里面 是無法做到形參改變 實(shí)參值同步改變的。只能通過傳地址的方式 即參數(shù)類型為指針 這樣 形參指向空間修改,可以使得實(shí)參指向空間同步修改,因?yàn)槭峭粔K內(nèi)存區(qū)域。另外,在C++中,可以通過引用傳參,來實(shí)現(xiàn)你說的目的。
你好!!方法很多,我用了變量的的地址作為參數(shù)和用到引用作為參數(shù),寫了2個(gè)程序?qū)崿F(xiàn)交換:用指針作為形參,交換的是指針?biāo)赶虻闹?,而不是指針變量的值?/p>
C語言中交換兩個(gè)變量需要用到一個(gè)臨時(shí)變量temp。