| 查看: 2496 | 回復(fù): 13 | |||
[求助]
c語言求助,一個小程序詳細講解
|
|||
|
#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(); } 請高手講解,此段在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ù)是單向的傳遞,即實參將值傳遞給形參,但形參的任何變化都與實參無關(guān)。在本題中,函數(shù)f中的參數(shù)是值參數(shù),形參c接受到了實參a的值,在函數(shù)f中,經(jīng)過運算,c.b和c.p的值分別變?yōu)?,4,但與實參a沒有半毛錢的關(guān)系,這就是為什么本題答案仍然是1,2的原因。 當(dāng)然,若將函數(shù)參數(shù)改為指針就另當(dāng)別論了,因為函數(shù)參數(shù)是指針的話,實參是將內(nèi)存地址傳遞給形參,形參的任何變化自然也就是實參的變化。2樓所做得修改就可驗證這一點。 |
金蟲 (文壇精英)
老漢一枚
|
在調(diào)用函數(shù)的時候,傳入的參數(shù)都會拷貝的。 舉個簡單例子說,你有一部手機A,別人也有一部相同手機B,你修改B的設(shè)置,并沒有影響A的該設(shè)置,傳入的參數(shù)就好比A,但是編譯器會用B,把B的屬性修改成和A的一樣,在函數(shù)體內(nèi)修改的是B的屬性,并不會改變A的屬性 還有一種,你把網(wǎng)上賬號告訴別人,別人賬號消費,你的賬號就會改變,這也是一種,也就相當(dāng)于指針! |
金蟲 (文壇精英)
老漢一枚
木蟲 (正式寫手)
金蟲 (正式寫手)
木蟲 (小有名氣)
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 304求調(diào)劑 +9 | 小熊joy 2026-03-14 | 9/450 |
|
|---|---|---|---|---|
|
[考研] 考研求調(diào)劑 +3 | 橘頌. 2026-03-17 | 4/200 |
|
|
[考研] 268求調(diào)劑 +7 | 好運連綿不絕 2026-03-12 | 8/400 |
|
|
[考研] 材料工程專碩274一志愿211求調(diào)劑 +6 | 薛云鵬 2026-03-15 | 6/300 |
|
|
[考研] 一志愿211 0703方向310分求調(diào)劑 +3 | 努力奮斗112 2026-03-15 | 3/150 |
|
|
[考研] 304求調(diào)劑 +3 | 曼殊2266 2026-03-14 | 3/150 |
|
|
[考研] 070303一志愿西北大學(xué)學(xué)碩310找調(diào)劑 +5 | d如愿上岸 2026-03-12 | 8/400 |
|
|
[考研] 085600材料與化工 求調(diào)劑 +13 | enenenhui 2026-03-13 | 14/700 |
|
|
[考研] 085601材料工程315分求調(diào)劑 +3 | yang_0104 2026-03-15 | 3/150 |
|
|
[考研] 材料與化工 323 英一+數(shù)二+物化,一志愿:哈工大 本人本科雙一流 +4 | 自由的_飛翔 2026-03-13 | 5/250 |
|
|
[考研] 330求調(diào)劑 +3 | ?醬給調(diào)劑跪了 2026-03-13 | 3/150 |
|
|
[考研] 求調(diào)劑(材料與化工327) +4 | 愛吃香菜啦 2026-03-11 | 4/200 |
|
|
[考研] 工科,求調(diào)劑 +3 | 我887 2026-03-11 | 3/150 |
|
|
[考研] 333求調(diào)劑 +3 | 球球古力 2026-03-11 | 3/150 |
|
|
[考研] 26調(diào)劑/材料科學(xué)與工程/總分295/求收留 +9 | 2026調(diào)劑俠 2026-03-12 | 9/450 |
|
|
[考研] 311求調(diào)劑 +3 | 冬十三 2026-03-13 | 3/150 |
|
|
[考研] 【考研調(diào)劑求收留】 +3 | Ceciilia 2026-03-11 | 3/150 |
|
|
[考研] 290求調(diào)劑 +7 | ADT 2026-03-12 | 7/350 |
|
|
[考研] 土木第一志愿276求調(diào)劑,科研和技能十分豐富,求新興方向的導(dǎo)師收留 +3 | 土木小天才 2026-03-12 | 3/150 |
|
|
[考研] 270求調(diào)劑 085600材料與化工專碩 +3 | YXCT 2026-03-11 | 3/150 |
|