第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

關(guān)于c語(yǔ)言指針的小問(wèn)題,希望大神指教

關(guān)于c語(yǔ)言指針的小問(wèn)題,希望大神指教

C
慕粉13202587281 2017-01-15 18:13:30
我打印出的結(jié)果是1 3 1 ,為什么經(jīng)過(guò)change函數(shù)后*pa的值沒(méi)有發(fā)生變化,而在里面的值是3.
查看完整描述

3 回答

已采納
?
眼前的黑不是黑zz

TA貢獻(xiàn)57條經(jīng)驗(yàn) 獲得超42個(gè)贊

pa=&a;

change(pa);

你傳進(jìn)去的確實(shí)是a的地址 pa, 但是在change函數(shù)內(nèi)你的操作有問(wèn)題,你把你在函數(shù)內(nèi)的聲明的變量b的地址賦值給指針變量p,而p存放的 a 的地址被覆蓋了,然后接下來(lái)是printf("%d\n", *p); 輸出的3只是b的值,從此至終,你都沒(méi)改變傳進(jìn)去的*pa的值,那何來(lái)的發(fā)生變化呢。我把你寫的change修改下,這樣才能改變*pa的值,即變量a的值。

void?change(int?*p)
{
????int?b?=?3;
????*p?=?b;
????printf("%d\n",?*p);
}

建議:好好看下書,看下函數(shù)的調(diào)用過(guò)程和指針的內(nèi)容。

查看完整回答
1 反對(duì) 回復(fù) 2017-01-15
  • 慕粉13202587281
    慕粉13202587281
    函數(shù)里面的p = &b不就是把a(bǔ)的地址賦值給pa,那*pa的值不就改變了嗎
  • 慕粉13202587281
    慕粉13202587281
    是b的地址賦值給pa
  • 眼前的黑不是黑zz
    眼前的黑不是黑zz
    第一,你不要說(shuō)什么*pa的值,是a的值,你想改變的就是變量a的值,pa是指針,存放a的地址罷了, 第二,糾正,是b的地址賦值給p,不是pa,所以a的值沒(méi)改變。
點(diǎn)擊展開(kāi)后面3
?
AIxer

TA貢獻(xiàn)22條經(jīng)驗(yàn) 獲得超13個(gè)贊

首先你要搞清楚C語(yǔ)言中的按值傳遞機(jī)制,你還要去了解下C語(yǔ)言中變量作用域的問(wèn)題,順便把內(nèi)存四區(qū)模型也給學(xué)了,然后你就自動(dòng)明白了,具體你再看看其他人的解答咯~
查看完整回答
反對(duì) 回復(fù) 2017-01-15
?
NightSong

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個(gè)贊

pa傳進(jìn)去的指針變量到change里面變成了副本,因?yàn)橹羔樢彩亲兞?,他?huì)自動(dòng)進(jìn)行傳值調(diào)用。,你把change(pa)改成change(&a)就好了,這里面?zhèn)鞒鋈サ木褪莂的真實(shí)的地址!

查看完整回答
反對(duì) 回復(fù) 2017-01-15
  • 3 回答
  • 0 關(guān)注
  • 1698 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)