| 查看: 2486 | 回復(fù): 13 | ||
[求助]
c語言求助,一個(gè)小程序詳細(xì)講解
|
||
|
#include typedef struct{int b,p;}A; void f(A c) { int j; c.b+=1; c.p+=2; } main() { int i; A a={1,2}; f(a) ; printf("%d,%d\n",a.b,a.p); getch(); } 請(qǐng)高手講解,此段在wintc中執(zhí)行結(jié)果為:1,2 為什么不是2,3啊?? [ Last edited by 小喬205909 on 2012-2-16 at 23:13 ] |
鐵桿木蟲 (著名寫手)
|
C語言中的參數(shù)傳遞是值傳遞,是單向的,用指針可解決。 #include typedef struct{int b,p;}A; void f(A *c) { int j; (*c).b+=1; (*c).p+=2; } main() { int i; A a={1,2}; f(&a) ; printf("%d,%d\n",a.b,a.p); getch(); |
金蟲 (小有名氣)
|
C語言中值參數(shù)是單向的傳遞,即實(shí)參將值傳遞給形參,但形參的任何變化都與實(shí)參無關(guān)。在本題中,函數(shù)f中的參數(shù)是值參數(shù),形參c接受到了實(shí)參a的值,在函數(shù)f中,經(jīng)過運(yùn)算,c.b和c.p的值分別變?yōu)?,4,但與實(shí)參a沒有半毛錢的關(guān)系,這就是為什么本題答案仍然是1,2的原因。 當(dāng)然,若將函數(shù)參數(shù)改為指針就另當(dāng)別論了,因?yàn)楹瘮?shù)參數(shù)是指針的話,實(shí)參是將內(nèi)存地址傳遞給形參,形參的任何變化自然也就是實(shí)參的變化。2樓所做得修改就可驗(yàn)證這一點(diǎn)。 |
金蟲 (文壇精英)
老漢一枚
|
在調(diào)用函數(shù)的時(shí)候,傳入的參數(shù)都會(huì)拷貝的。 舉個(gè)簡單例子說,你有一部手機(jī)A,別人也有一部相同手機(jī)B,你修改B的設(shè)置,并沒有影響A的該設(shè)置,傳入的參數(shù)就好比A,但是編譯器會(huì)用B,把B的屬性修改成和A的一樣,在函數(shù)體內(nèi)修改的是B的屬性,并不會(huì)改變A的屬性 還有一種,你把網(wǎng)上賬號(hào)告訴別人,別人賬號(hào)消費(fèi),你的賬號(hào)就會(huì)改變,這也是一種,也就相當(dāng)于指針!! |
金蟲 (文壇精英)
老漢一枚
金蟲 (小有名氣)
木蟲 (正式寫手)
金蟲 (正式寫手)
木蟲 (小有名氣)
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 070300化學(xué)319求調(diào)劑 +4 | 錦鯉0909 2026-03-17 | 4/200 |
|
|---|---|---|---|---|
|
[考研] 本人考085602 化學(xué)工程 專碩 +16 | 不知道叫什么! 2026-03-15 | 18/900 |
|
|
[考研] 275求調(diào)劑 +4 | 太陽花天天開心 2026-03-16 | 4/200 |
|
|
[碩博家園] 深圳大學(xué)碩士招生(2026秋,傳感器方向,僅錄取第一志愿) +4 | xujiaoszu 2026-03-11 | 9/450 |
|
|
[考研]
|
zhouzhen654 2026-03-16 | 3/150 |
|
|
[考研] 藥學(xué)383 求調(diào)劑 +3 | 藥學(xué)chy 2026-03-15 | 4/200 |
|
|
[考研] 機(jī)械專碩325,尋找調(diào)劑院校 +3 | y9999 2026-03-15 | 5/250 |
|
|
[考研] 304求調(diào)劑 +4 | ahbd 2026-03-14 | 4/200 |
|
|
[考研] 311求調(diào)劑 +5 | 26研0 2026-03-15 | 5/250 |
|
|
[考研] 294求調(diào)劑 +3 | Zys010410@ 2026-03-13 | 4/200 |
|
|
[考研] 中科大材料與化工319求調(diào)劑 +3 | 孟鑫材料 2026-03-14 | 3/150 |
|
|
[基金申請(qǐng)] 現(xiàn)在如何回避去年的某一個(gè)專家,不知道名字 +3 | zk200107 2026-03-12 | 6/300 |
|
|
[考研] 學(xué)碩285求調(diào)劑 +13 | Wisjxn 2026-03-12 | 46/2300 |
|
|
[考研] 307求調(diào)劑 +5 | 超級(jí)伊昂大王 2026-03-12 | 5/250 |
|
|
[考研] 工科278分求調(diào)劑 +5 | 周慢熱啊 2026-03-12 | 7/350 |
|
|
[考研] 314求調(diào)劑 +7 | 無懈可擊的巨人 2026-03-12 | 7/350 |
|
|
[考研] 材料301分求調(diào)劑 +5 | Liyouyumairs 2026-03-12 | 5/250 |
|
|
[論文投稿]
投稿問題
5+4
|
星光燦爛xt 2026-03-12 | 6/300 |
|
|
[考研] 070303一志愿西北大學(xué)學(xué)碩310找調(diào)劑 +3 | d如愿上岸 2026-03-13 | 3/150 |
|
|
[考研] 321求調(diào)劑(食品/專碩) +3 | xc321 2026-03-12 | 6/300 |
|