24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2558  |  回复: 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的回帖

yalefield

金虫 (文坛精英)

老汉一枚

【答案】应助回帖

xzhdty(金币+2, 专家考核): 欢迎常来程序语言看看 2012-02-17 21:27:42
CODE:
void f(A *c)
{
    int j;
    (*c).b+=1;
    (*c).p+=2;
   }

正常的写法应该是:
CODE:
void f(A *c)
{
        c->b +=1;
        c->p +=2;
}

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

6楼2012-02-17 18:32:21
已阅   回复此楼   关注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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 081700,311,求调剂 +16 冬十三 2026-04-04 17/850 2026-04-06 14:56 by 尚水阁主
[考研] 一志愿河北工业大学材料工程,初试344求专硕调剂 +6 15933906766 2026-04-05 6/300 2026-04-06 13:21 by 无际的草原
[考研] 生物与医药求调剂 +5 heguanhua 2026-04-05 6/300 2026-04-05 22:58 by Hdyxbekcb
[考研] 329求调剂 +17 miaodesi 2026-04-02 20/1000 2026-04-05 18:33 by 蓝云思雨
[考研] 材料专硕 调剂 +14 CXN123456 2026-04-03 14/700 2026-04-05 17:18 by Hdyxbekcb
[考研] 328分调剂 +6 门men 2026-04-04 6/300 2026-04-05 13:40 by imissbao
[考研] 材料调剂 +12 一样YWY 2026-04-04 12/600 2026-04-05 08:24 by 544594351
[考研] 11408 一志愿西电,277分求调剂 +4 zhouzhen654 2026-04-03 4/200 2026-04-04 18:10 by 猪会飞
[考研] 怎么删帖子啊 +3 缝曦1000 2026-04-04 3/150 2026-04-04 14:20 by 土木硕士招生
[考研] 化工调剂303分,过四级 +28 栖梧待风 2026-04-02 28/1400 2026-04-03 21:40 by qlm5820
[考研] 交通运输考试264分求工科调剂 +4 jike777 2026-04-02 4/200 2026-04-02 21:53 by zllcz
[考研] 22408 266求调剂 +3 masss11222 2026-04-02 3/150 2026-04-02 18:11 by 笔落锦州
[考研] 279求调剂 +5 傅文秋 2026-04-02 5/250 2026-04-02 18:10 by 笔落锦州
[考研] 求调剂 302分初试 0854 +5 伶可乐 2026-04-02 5/250 2026-04-02 17:53 by 笔落锦州
[考研] 321求调剂 一志愿 浙江工业大学生物医药 +5 嘿嘿HC 2026-04-01 6/300 2026-04-02 15:23 by sophie2180
[考研] 283求调剂 +3 jiouuu 2026-04-02 4/200 2026-04-02 14:08 by 哒哒哒呱呱呱
[考研] 求调剂,一志愿南京师范大学计算机专硕,初试373,六级通过, +3 计算机追梦人 2026-04-01 3/150 2026-04-02 07:57 by fxue1114
[考研] 土木304求调剂 +5 顶级擦擦 2026-03-31 5/250 2026-04-01 08:15 by fdcxdystjk¥
[考研] 340求调剂 +4 希望如此i 2026-03-31 4/200 2026-03-31 16:40 by 690616278
[考研] 一志愿中海洋材料357 +4 麦恩莉. 2026-03-30 4/200 2026-03-31 14:35 by 记事本2026
信息提示
请填处理意见