欧美经典成人在观看线视频_嫩草成人影院_国产在线精品一区二区中文_国产欧美日韩综合二区三区

當(dāng)前位置:首頁 > 開發(fā)語言 > 正文

用指針交換兩個(gè)數(shù)的值

用指針交換兩個(gè)數(shù)的值

各位老鐵們好,相信很多人對用指針交換兩個(gè)數(shù)的值都不是特別的了解,因此呢,今天就來為大家分享下關(guān)于用指針交換兩個(gè)數(shù)的值以及使用指針交換兩個(gè)數(shù)的問題知識,還望可以幫助大家,...

各位老鐵們好,相信很多人對用指針交換兩個(gè)數(shù)的值都不是特別的了解,因此呢,今天就來為大家分享下關(guān)于用指針交換兩個(gè)數(shù)的值以及使用指針交換兩個(gè)數(shù)的問題知識,還望可以幫助大家,解決大家的一些困惑,下面一起來看看吧!

文章目錄:

C語言問題:怎樣用指針和函數(shù)實(shí)現(xiàn)兩個(gè)數(shù)組的交換

1、注意形式參數(shù)和實(shí)際參數(shù)的區(qū)別,主函數(shù)中的x,y是實(shí)際參數(shù),swap函數(shù)中的a,b是形式參數(shù)。他們各有自己的存儲空間,互不干擾。 在程序適當(dāng)位置加上輸出的語句,即可看出為什么回到主程序后,x,y的值為什么不交換。

2、/ 編寫c語言程序,實(shí)現(xiàn)交換兩個(gè)變量值的操作。要求:使用形參為指針的函數(shù)swap完成交換功能。主函數(shù)中,使用整型指針從鍵盤輸入兩個(gè)整數(shù),通過調(diào)用swap完成交換 輸出交換前后的變量值進(jìn)行比較。

3、首先,就是最基本的知識,寫頭文件、函數(shù)聲明、定義變量。下面還需要定義指針,需要定義兩個(gè)指針p1和p2,然后把a(bǔ)的賦值給p1,把b的賦值給p2。然后就是調(diào)用函數(shù),該函數(shù)沒有返回值,就直接調(diào)用,但是參數(shù)的是a和b的,而不是a和b。

4、指針的作用很多的,下面是我上課做的一些筆記,你可以看看。

5、而嚴(yán)重的情況是,該單元的數(shù)據(jù)可能是有用的,因此fun2()不但沒有實(shí)現(xiàn)兩個(gè)數(shù)的交換,反而給的穩(wěn)定性帶來威脅。fun3(),將int賦值給int *,編譯錯(cuò)誤。fun4()是正確的。

指針變量交換兩個(gè)數(shù)的位置時(shí)為什么不加*就是錯(cuò)的?

因?yàn)橹羔樧兞恐写鎯Φ氖侵担匀绻羔樧兞拷粨Q兩個(gè)數(shù)的位置時(shí)不加*,就是把變量的值賦值給指針變量,這是不允許的。

定義,因?yàn)樗嵌x。不帶“*”,就無法區(qū)分是指針還是變量。&:叫做,取符。p1=其實(shí)就是把a(bǔ)的取出來,賦給p1。你可以這么理解,*P1才是和變量a同一個(gè)等級的東西。&相當(dāng)于降級取,那p1去掉星號*也相當(dāng)于取。

當(dāng)你重新定義一個(gè)char *temp, 這里明顯是temperory,作為暫時(shí)的中間變量。temp本身也是指針的,現(xiàn)在將str[i]的值賦予temp,那么*temp和*str[i]就是同一個(gè)指針的不同名字,他們指向同一個(gè)內(nèi)容。

他們各有自己的存儲空間,互不干擾。 在程序適當(dāng)位置加上輸出的語句,即可看出為什么回到主程序后,x,y的值為什么不交換。為了更形象,可以用示它們的關(guān)系:可見,交換的只是swap函數(shù)中的a,b值,對主函數(shù)中的a,b值沒有影響。 修改的方法,將swap的交換變成值的交換。

首先,雖然傳遞的是,但是仍然是屬于傳值調(diào)用的范疇。因?yàn)橹羔樦皇怯脕碣x值,并沒有被間接引用。那么你是不是想用傳址調(diào)用呢,就這個(gè)程序而言,也是不行的。你希望通過交換str1和str2的值來實(shí)現(xiàn)字符串的賦值,是行不通的。

在下面程序一中想利用swap函數(shù)交換主函數(shù)中兩個(gè)指向a和b 的指針,但是這樣是不能實(shí)現(xiàn)的,因?yàn)楹瘮?shù)的形參不能改變實(shí)參,所以主函數(shù)中的那兩個(gè)指針是沒變的;但是程序二中sort函數(shù)中有跟程序一的swap函數(shù)類似的操作,可是在沒有返回值的情況下主函數(shù)卻得到了改變后的結(jié)果。

C語言用指針法交換兩個(gè)數(shù)的順序問題

注意形式參數(shù)和實(shí)際參數(shù)的區(qū)別,主函數(shù)中的x,y是實(shí)際參數(shù),swap函數(shù)中的a,b是形式參數(shù)。他們各有自己的存儲空間,互不干擾。 在程序適當(dāng)位置加上輸出的語句,即可看出為什么回到主程序后,x,y的值為什么不交換。

其實(shí)就是內(nèi)存的內(nèi)容互換了;p1 = &a1,就是取了a1在內(nèi)存中的給p1,這個(gè)指針,那么p1就指向了a1的那塊內(nèi)存。同理p2指向a2的內(nèi)存。然后*p1是取p1內(nèi)存中的內(nèi)容,也就是a1,賦值給a;然后把*p2把p2內(nèi)存的內(nèi)容給*p1指向的內(nèi)存。然后把a(bǔ)的值給p2指向的內(nèi)存,*p2 = a;完成值的互換。

新建一個(gè)工程和.c文件 ,輸入頭文件和主函數(shù)。然后開始定義變量類型。輸入a和b兩個(gè)整數(shù)。對a和b兩個(gè)不同的整數(shù)進(jìn)行賦值。然后通過if語句實(shí)現(xiàn)值大小的比較。輸出最后的結(jié)果。編譯、運(yùn)行,可以看見按先小后大的順序輸出a和b。

END,本文到此結(jié)束,如果可以幫助到大家,還望關(guān)注本站哦!