| 查看: 2488 | 回復(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è)簡(jiǎn)單例子說,你有一部手機(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ā)表 | |
|---|---|---|---|---|
|
[考研] 296求調(diào)劑 +5 | 大口吃飯 身體健 2026-03-13 | 5/250 |
|
|---|---|---|---|---|
|
[考研] 302求調(diào)劑 +9 | 負(fù)心者當(dāng)誅 2026-03-11 | 9/450 |
|
|
[考研] 梁成偉老師課題組歡迎你的加入 +8 | 一鴨鴨喲 2026-03-14 | 10/500 |
|
|
[考研] 一志愿蘇州大學(xué)材料工程(085601)專碩有科研經(jīng)歷三項(xiàng)國(guó)獎(jiǎng)兩個(gè)實(shí)用型專利一項(xiàng)省級(jí)立項(xiàng) +6 | 大火山小火山 2026-03-16 | 8/400 |
|
|
[考研] 290求調(diào)劑 +6 | 孔志浩 2026-03-12 | 11/550 |
|
|
[考研] 一志愿南京大學(xué),080500材料科學(xué)與工程,調(diào)劑 +4 | Jy? 2026-03-16 | 4/200 |
|
|
[考研] 材料與化工304求B區(qū)調(diào)劑 +7 | 邱gl 2026-03-11 | 8/400 |
|
|
[考研] 274求調(diào)劑 +5 | 時(shí)間點(diǎn) 2026-03-13 | 5/250 |
|
|
[考研] 環(huán)境工程調(diào)劑 +6 | 大可digkids 2026-03-16 | 6/300 |
|
|
[考研] 0703化學(xué)調(diào)劑 290分有科研經(jīng)歷,論文在投 +7 | 膩膩gk 2026-03-14 | 7/350 |
|
|
[考研] 331求調(diào)劑(0703有機(jī)化學(xué) +5 | ZY-05 2026-03-13 | 6/300 |
|
|
[考研] 337一志愿華南理工0805材料求調(diào)劑 +7 | mysdl 2026-03-11 | 9/450 |
|
|
[考研] 308求調(diào)劑 +5 | 是Lupa啊 2026-03-11 | 5/250 |
|
|
[考研] 求調(diào)劑(材料與化工327) +4 | 愛吃香菜啦 2026-03-11 | 4/200 |
|
|
[考研] 求材料調(diào)劑 085600英一數(shù)二總分302 前三科235 精通機(jī)器學(xué)習(xí) 一志愿哈工大 +4 | 林yaxin 2026-03-12 | 4/200 |
|
|
[考研] 求b區(qū)學(xué)校調(diào)劑 +3 | 周56 2026-03-11 | 3/150 |
|
|
[考研] 307求調(diào)劑 +5 | 超級(jí)伊昂大王 2026-03-12 | 5/250 |
|
|
[考研] 314求調(diào)劑 +7 | 無懈可擊的巨人 2026-03-12 | 7/350 |
|
|
[考研] 277求調(diào)劑 +4 | anchor17 2026-03-12 | 4/200 |
|
|
[考研] 290求調(diào)劑 +3 | ADT 2026-03-13 | 3/150 |
|