誰能幫我解答c語言的問題,誰能幫我解答乙個C語言的問題

2022-01-30 15:16:45 字數 1226 閱讀 2265

1樓:

第乙個swap是交換指標,即交換位址,如你所說,這是形參的調換,實參不收影響

第二個swap是交換指標指向的內容,即交換2個位址裡面儲存的數值,他不是形參的交換

第乙個是交換p1,p2,第二個是交換*p1,*p2

2樓:戚文柏

對於這種題目,可以這樣去理解:函式傳遞引數就是把乙個變數賦值給另乙個變數,純粹是賦值,比如

int a=3,b;

b = a;

b = 4;

然道你說a變了嗎?

舉例:1.

void swap(int *p1,int *p2) //<==> int *p1 = pointer_1;int *p2 = pointer;只是將乙個變數的值賦給另乙個變數.

對於第二個:

void swap(int *p1,int *p2)

就不同了,操作的是位址,

你宣告乙個指標變數,給它賦值,就好比,編譯器是乙個地主,為pointer_1分配了一塊地,pointer_1又把這塊地授權給p1可以耕種,只要p1用"*"取位址符,開發了這塊地,那麼這塊地改變了,當pointer用"*"使用這塊地是,也一樣改變了.

說的不是很形象,不知道你懂不?一句話,傳參就是把乙個變數賦給另乙個變數,如果傳遞的是位址,那麼只用是用"*"取位址符,操作了位址的值,那麼傳入的變數的值也為改變,共用同乙個段記憶體.

3樓:匿名使用者

我最討厭這種風格的**,,,用垃圾**來形容都可以。

這位朋友,,,注意學習**風格的知識。。。。

第二個實現的調換,,不多說了。

說第乙個。。。

這話是main函式的呼叫語句if(a

這是函式定義void swap(int *p1,int *p2)

你應該明白,,,pointer_1與p1是不同的變數,他們有自己的儲存空間。

所以,pointer_1的值傳給p1,傳的是位址,所以p1也指向a.

ok ,,,呼叫swap(int *p1,int *p2),

現在,,,pointer_1指向a ,,,,p1指向a ,

然後,,,,你在函式搞來搞去,,,p1都指向a ...。。。

p1和pointer_1是不同的變數!!!對p1的操作不會影響pointer_1

ok,,,,執行swap函式以後,,,p1,,,和p2,都銷毀了,,,

c語言問題,求解答,求解答c語言問題

首先執行getchar,就是先讓你輸入乙個字元,然後執行putchar,就是將剛剛的字元輸出,然後判斷字元是不是 是的話退出,否則繼續執行迴圈。迴圈體只有乙個 getchar每接收乙個字元,putchar就進行輸出,當為 時,則!後面若還有字元,按換行鍵後則不會輸出 輸出的字元要從getchar函式...

子宮肌瘤問題,誰能幫我解答?高分懸賞

你知道子宮內膜分為3種,1.漿膜層肌瘤2黏膜層3肌壁間 只有2種會引起月經的異常,這個肌肉瘤會生長,當它慢慢長大會壓迫後面的直腸,通過神經反射,你媽媽就會壓迫症狀,我媽媽也長這個,一開始很小,慢慢越長越大,吃中藥沒用,最後還是選擇手術,你知道有微創手術,就是那種,像你媽媽還是手術,早晚的是,現在已經...

C語言問題,求解答,C語言問題,求大神解答

f函式中的a每次使用外面傳入的2,b是區域性變數,後每次都是1,c是靜態變數,函式每次執行會在上次值 1 所以最後執行三次,輸出為789 程式的輸出是 789 c語言問題,求解答 執行abc a 1 首先進行巨集代換過程,是把 a 1去替代 定義的巨集函式 x x 中的x,即得到式子 a 1 a 1...