1、這要看你返回的指針指向的是不是局部變量,你的問(wèn)題很可以是返回的是一個(gè)局部變量的指針。
創(chuàng)新互聯(lián)公司長(zhǎng)期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為武清企業(yè)提供專(zhuān)業(yè)的成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),武清網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
2、樓主這么寫(xiě)不對(duì),c中的函數(shù)參數(shù)傳遞是值傳遞。
3、這與參數(shù)傳遞有關(guān),swap(int x,int y),x,y是調(diào)用此函數(shù)時(shí),兩個(gè)變量的一份拷貝,只有*x這樣定義,才是傳遞的地址。
4、指針傳遞、引用傳遞指的就是調(diào)用函數(shù)時(shí)傳遞的是指針、引用。 與之對(duì)應(yīng)的還有傳值方式。這種方式只是傳遞了變量的一個(gè)副本。也就是說(shuō)只傳了一個(gè)值而已,并不是這個(gè)變量,所以就無(wú)法對(duì)這個(gè)變量更改了。
5、指針完全可以作為函數(shù)的參數(shù)進(jìn)行傳遞,其實(shí)在C中,數(shù)組作為參數(shù)傳遞,跟指針作為參數(shù)傳遞都很類(lèi)似的,指針傳的是該指針指向的地址,而數(shù)組參數(shù)則是將該數(shù)組的首地址傳遞過(guò)去。
直接掛掉 你的P沒(méi)有初始化 是野指針 于是ptr的值也就是隨機(jī)值 賦值*ptr導(dǎo)致野指針賦值,非法訪問(wèn),掛掉。
這要看你返回的指針指向的是不是局部變量,你的問(wèn)題很可以是返回的是一個(gè)局部變量的指針。
訪問(wèn)指針變量的值:在變量名前面加 int 到string無(wú)法賦值,因?yàn)轭?lèi)型不同。轉(zhuǎn)義字符是在字符無(wú)法表示的情況下借助字符中的字母前面加“\”來(lái)表示如回車(chē)符的轉(zhuǎn)義字符是\n。
如果你只需要傳出一個(gè)值,把這個(gè)值放在return后面,例如 子函數(shù)fun中return p;然后調(diào)用時(shí)用 t=fun()就可以了。如果需要傳回多個(gè)值,需要二級(jí)指針。
如果只是用到buff【1】【2】這一個(gè)元素的話,我們不妨把它想象成一個(gè)單獨(dú)的變量,變量名就叫做“buff【1】【2】”。那么我們就可以按照傳遞單獨(dú)的變量的方法進(jìn)行操作。
因?yàn)樵跅5牟煌恢么鎯?chǔ)。我們提出的雙向傳遞是,通過(guò)把原來(lái)的當(dāng)做實(shí)參變量的地址當(dāng)做實(shí)參傳入函數(shù),在函數(shù)內(nèi)部通過(guò)修改指針形參指向的地址來(lái)把值傳遞出函數(shù);作為變量地址的實(shí)參依然不可能在函數(shù)內(nèi)部被修改。
1、num這個(gè)指針沒(méi)移動(dòng),于是取的是數(shù)組的第一個(gè)。
2、典型的函數(shù)聲明可以這樣寫(xiě):void f( int(*)[5] ); 典型的實(shí)參調(diào)用可以這樣寫(xiě):f(k); 這里的k是int k[3][5]二維數(shù)組。
3、當(dāng)數(shù)組作為函數(shù)的參數(shù)進(jìn)行傳遞時(shí),該數(shù)組自動(dòng)退化為同類(lèi)型的指針。因?yàn)榈谌龡l,當(dāng)把數(shù)組名作為函數(shù)的形參進(jìn)行傳遞時(shí),該效果等同于傳遞一個(gè)同類(lèi)型的指針。直接在程序當(dāng)中調(diào)用 函數(shù)名(數(shù)組名)即可。
首先,int *num[] 是指針數(shù)組 ,存放的是數(shù)組元素a[0]-a[5]的地址。再說(shuō)sort 參數(shù),傳入的是數(shù)組num的首地址 ,以及 n 要排序的元素個(gè)數(shù)。
你的問(wèn)題很可以是返回的是一個(gè)局部變量的指針。當(dāng)那個(gè)函數(shù)返回時(shí),內(nèi)存被回收,在主函數(shù)里打印時(shí),是因?yàn)槟菈K內(nèi)在沒(méi)被別的函數(shù)覆蓋,當(dāng)你再調(diào)用別人函數(shù)的時(shí)候,那個(gè)地址的內(nèi)容已經(jīng)改變。這就是你的錯(cuò)誤原因。
通過(guò)參數(shù)告訴函數(shù):參數(shù)指向的單元存放著你要的數(shù)據(jù)(供函數(shù)讀寫(xiě)),處理完后也可以將結(jié)果放到那些單元(函數(shù)結(jié)束后供調(diào)用程序讀寫(xiě)),這樣雙方都可以讀寫(xiě)數(shù)據(jù)和結(jié)果,稱(chēng)為雙向傳遞。
1、簡(jiǎn)單的說(shuō),ptr是一個(gè)指向int[4]的指針 43行是把上面說(shuō)的那種類(lèi)型轉(zhuǎn)成int*類(lèi)型 如果你要問(wèn)為什么可以這么轉(zhuǎn),那其實(shí)C語(yǔ)言怎么轉(zhuǎn)都行,只要程序員自己知道自己在做什么。
2、指針傳遞、引用傳遞指的就是調(diào)用函數(shù)時(shí)傳遞的是指針、引用。 與之對(duì)應(yīng)的還有傳值方式。這種方式只是傳遞了變量的一個(gè)副本。也就是說(shuō)只傳了一個(gè)值而已,并不是這個(gè)變量,所以就無(wú)法對(duì)這個(gè)變量更改了。
3、將數(shù)組作為一個(gè)參數(shù)傳出去,那么他就會(huì)“退化”成一個(gè)指針類(lèi)型,進(jìn)而失去“數(shù)組的屬性”。(這里的數(shù)組不是new出來(lái)的)這里的“屬性”指的是數(shù)組可以使用sizeof(Array)/sizeof(Array[0])的方法獲得其長(zhǎng)度的方法的屬性。
4、對(duì)于矩陣,把它包裝成一個(gè)struct應(yīng)該更加方便些。
5、看你的代碼。你問(wèn)題并不在數(shù)組傳入。你函數(shù)mymd5接收password數(shù)組,mymd5的password數(shù)組變量和外部函數(shù)的password地址相同,所以改變其中外部函數(shù)的數(shù)組也改變。
C語(yǔ)言中,函數(shù)參數(shù)只能傳值。與傳值對(duì)應(yīng)的是傳引用,C語(yǔ)言不支持函數(shù)參數(shù)傳引用,C++語(yǔ)言才支持。C++傳引用函數(shù):void foo(int& a) { a = 3; } 假如a = 2,執(zhí)行foo(a)后,a = 3。
利用指針作函數(shù)參數(shù),設(shè)計(jì)一函數(shù)實(shí)現(xiàn)將n個(gè)元素進(jìn)行排序 將這n個(gè)元素存在數(shù)組里,然后用指針類(lèi)型參數(shù)接收即作為形參,然后采用排序算法對(duì)這些元素進(jìn)行排序即可 C語(yǔ)言,編寫(xiě)一函數(shù),其功能是求一個(gè)長(zhǎng)整數(shù)各位數(shù)字之和。
這是因?yàn)樵贑語(yǔ)言中,主調(diào)函數(shù)到子函數(shù)的參數(shù)傳遞都只是單向的。為了要把在子函數(shù)中的操作效果帶回到主調(diào)函數(shù)中,就只有利用指針(指向主調(diào)函數(shù)中的變量),直接把主調(diào)函數(shù)中變量的值進(jìn)行修改。
分享題目:c語(yǔ)言指針傳入函數(shù) c語(yǔ)言指針傳值亂碼問(wèn)題
本文鏈接:http://chinadenli.net/article16/dehepgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、軟件開(kāi)發(fā)、微信小程序、網(wǎng)站設(shè)計(jì)公司、手機(jī)網(wǎng)站建設(shè)、域名注冊(cè)
聲明:本網(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)