C 指標與函式的問題,幫忙解釋一下結果,為什麼結果的第二行是XX而不是YX

2022-06-10 09:06:41 字數 1120 閱讀 9125

1樓:

fun(x,&y); //呼叫的是void fun(char a,char *b);

//第乙個實參x是傳值,呼叫後值不會改變,還是'x';

//第二個實參y是傳位址,呼叫後值會改變,變成'x';

cout<

2樓:勞傷痕

void fun(char a,char *b)

//呼叫這個函式, fun(x,&y);

//它會重新分配變數a,c,指標變數b,再把x的值賦予a,把y的位址賦予b

//當執行c=a='x';a=*b='y';*b='x';(b指向y的位址,所以y的值更改為'x'

//當呼叫完函式後,函式中的變數c,a,b分配的儲存空間會被釋放,它是區域性自動變數

//所以main函式中的x依然為'x',而y通過呼叫函式而把它的值更改為'x'

3樓:抗涵煦

c++函式有取值以及取址之分,前者不會改變原來的值,後者則相反。在第乙個函式後x,y的值互換,但是在第二個函式中第乙個引數是取值,不會改變原來的值,而第二個引數是取址,改變了原來的值

void fun(char a,char *b)

a的值不會變,而b的值變成了a的值

4樓:匿名使用者

x='x',y='y';

fun(x,&y);

cout<

呼叫的是

void fun(char a,char *b)因為函式引數的傳遞是值傳遞,函式中修改引數的值的,不會影響傳入的變數的值。

比如c=a;不會導致a的值發生修改

而char *b 是乙個指標,*b=c表示修改 b指標指向記憶體的值,由於b指標指向的位址是變數y的位址,因此修改該位址的的會導致變數y的值發生修改

指標懂的話,你就一定懂的。

5樓:匿名使用者

第二行:

x='x',y='y';

fun(x,&y);

cout<

其中呼叫void fun(char a,char *b)char a是傳值,不會改變實參,char *b是傳位址,會改變實參

幫忙解釋一下意思,幫忙解釋一下什麼意思?

你的桃花運就是三四月份會來,你要多多注意一下。如果和物件感情有問題,切記不要說一下無可挽回的話語,要柔情似水,方可挽回愛情。努力的理由很多,需要乙個人陪你乙個理由有些奇?怪。只有有乙個人陪你了你才能努力嗎?其實話應該反過來說,你先努力了,優秀了,讓你身邊每乙個人來證實你的存在,這樣那個人會自然而然的...

解釋一下函式引數吧

包括形參和實參。bai 形參出現在du函式定義中,在整個zhi函式體內都可以dao使用,離開該回函式則不能使用。實答參出現在主調函式中,進入被調函式後,實參變數也不能使用。形參和實參的功能是作資料傳送。發生函式呼叫時,主調函式把實參的值傳送給被調函式的形參從而實現主調函式向被調函式的資料傳送。1.形...

請幫忙解釋一下佛法

阿彌陀佛!師兄,佛是究竟圓滿的覺悟者,洞悉宇宙人生乃至整個法界的真相和規律。佛法就是講述這些真相和規律,並引導我們如何超越這些規律,遠離一切迷惑顛倒錯覺無明,回歸妙明圓滿智慧型具足的佛性自性。師兄,佛法是應對不同的因緣,而講說的不同妙法,法法針對當下的因緣,而引導眾生徹底解脫一切煩惱痛苦生滅輪轉。佛...