24小时热门版块排行榜    

查看: 2463  |  回复: 13
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

小乔205909

铜虫 (初入文坛)

[求助] 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中执行结果为:1,2   
为什么不是2,3啊??

[ Last edited by 小乔205909 on 2012-2-16 at 23:13 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

psxlcs

金虫 (正式写手)

jjdg(金币+1): 感谢应助 2012-02-20 01:41:23
因为函数执行参数是单向传递啊
9楼2012-02-19 13:35:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 14 个回答

yalefield

金虫 (文坛精英)

老汉一枚

【答案】应助回帖

感谢参与,应助指数 +1
jjdg(金币+1): 感谢应助 2012-02-18 12:34:46
简单滴说,函数f里面的那个c,并不是函数main里面的那个a。
那个c是个马甲。
2楼2012-02-17 01:59:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xar

铁杆木虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
xzhdty(金币+1): 欢迎常来程序语言看看 2012-02-17 21:28:36
小乔205909: 回帖置顶 2012-07-26 06:25:20
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();
3楼2012-02-17 08:00:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lxlstudy123

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
小乔205909: 回帖置顶 2012-02-20 09:08:50
余泽成(金币+2): 谢谢参与应助! 2012-02-21 00:27:15
C语言中值参数是单向的传递,即实参将值传递给形参,但形参的任何变化都与实参无关。在本题中,函数f中的参数是值参数,形参c接受到了实参a的值,在函数f中,经过运算,c.b和c.p的值分别变为2,4,但与实参a没有半毛钱的关系,这就是为什么本题答案仍然是1,2的原因。
当然,若将函数参数改为指针就另当别论了,因为函数参数是指针的话,实参是将内存地址传递给形参,形参的任何变化自然也就是实参的变化。2楼所做得修改就可验证这一点。

» 本帖已获得的红花(最新10朵)

4楼2012-02-17 11:40:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 机械专硕调剂 +3 笨笨兔子 2026-03-12 3/150 2026-03-15 20:02 by 栗子粥?
[考研] 22408总分284求调剂 +3 InAspic 2026-03-13 3/150 2026-03-15 11:10 by zhq0425
[考研] 304求调剂 +5 小熊joy 2026-03-14 5/250 2026-03-14 21:07 by peike
[考研] 328求调剂 +3 5201314Lsy! 2026-03-13 6/300 2026-03-14 15:31 by hyswxzs
[考研] 2026考研调剂+本科延边大学+山东大学+生物化学与分子生物学+有项目经验 +3 ccdsscjy 2026-03-09 6/300 2026-03-14 02:14 by JourneyLucky
[考研] 333求调剂 +3 球球古力 2026-03-09 3/150 2026-03-14 01:57 by JourneyLucky
[考研] 318求调剂 +3 李新光 2026-03-10 3/150 2026-03-14 00:21 by JourneyLucky
[考研] 复试调剂 +9 Copy267 2026-03-10 9/450 2026-03-13 23:45 by userper
[考研] 材料371求调剂 +9 鳄鱼? 2026-03-11 11/550 2026-03-13 22:53 by JourneyLucky
[考研] 材料专硕288分求调剂 一志愿211 +4 在家想你 2026-03-11 4/200 2026-03-13 22:49 by JourneyLucky
[考研] (081700)化学工程与技术-298分求调剂 +12 11啦啦啦 2026-03-11 35/1750 2026-03-13 21:25 by JourneyLucky
[考研] 311求调剂 +3 冬十三 2026-03-13 3/150 2026-03-13 20:41 by JourneyLucky
[考研] 310求调剂 +3 【上上签】 2026-03-11 3/150 2026-03-13 16:16 by JourneyLucky
[考研] 工科材料085601 279求调剂 +8 困于星晨 2026-03-12 10/500 2026-03-13 15:42 by ms629
[考研] 314求调剂 +7 无懈可击的巨人 2026-03-12 7/350 2026-03-13 15:40 by JourneyLucky
[考研] 材料专硕274一志愿陕西师范大学求调剂 +4 薛云鹏 2026-03-13 4/200 2026-03-13 10:40 by 学员8dgXkO
[考研] 0856材料与化工353分求调剂 +11 NIFFFfff 2026-03-09 11/550 2026-03-10 18:36 by suyuanhai
[考研] 求调剂材料专硕293 +6 段_(:з」∠)_ 2026-03-10 6/300 2026-03-10 18:22 by ms629
[考研] 0703化学调剂 +3 三dd. 2026-03-10 3/150 2026-03-10 15:45 by peike
[考研] 294 英二数二物化 求调剂 +6 米饭团不好吃 2026-03-09 6/300 2026-03-09 23:55 by barlinike
信息提示
请填处理意见