24小时热门版块排行榜    

查看: 2412  |  回复: 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的回帖

yingxin967

铜虫 (小有名气)

引用回帖:
4楼: Originally posted by lxlstudy123 at 2012-02-17 11:40:22:
C语言中值参数是单向的传递,即实参将值传递给形参,但形参的任何变化都与实参无关。在本题中,函数f中的参数是值参数,形参c接受到了实参a的值,在函数f中,经过运算,c.b和c.p的值分别变为2,4,但与实参a没有半毛 ...

同意4楼所说,简单变量作为函数参数,执行的是单向的值传递,即实参传递给形参。
14楼2012-02-20 09:38:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 小乔205909 的主题更新
信息提示
请填处理意见