唐僧爱吃唐僧肉 2017-06-07 01:36 采纳率: 16.7%
浏览 890

小女这一题不懂,跪求大神指教

以下程序执行后的输出结果是
#include 
struct STU
{
    char name[10];
    int num;
};
 
void Fun1(struct STU c)
{
    struct STU b={"LiGuo",2042};
    c=b;
};
 
void Fun2(struct STU *c)
{
    struct STU b={"SunDan",2044};
    *c=b;
};
 
int main()
{
    struct STU a={"YangHan",2041},b={"WangYi",2043};
    Fun1(a);
    Fun2(&b);
    printf("%d %d\n",a.num,b.num);
    return 0;
}
求大神解析一下,谢谢!

  • 写回答

2条回答 默认 最新

  • fzcbx 2017-06-07 01:57
    关注

    基础题,考察的参数的值传递和地址传递,2041 2044 值传递只是传一份参数的复制给函数,函数将参数的复制修改有并不会修改参数的值所以Fun1并不能改变a中的数据,还是2041,。地址传递传递进去的是参数的地址,修改指针指向的数据可以修改,讲的不是很清楚,可以百度一下相关知识,关于值传递和地址传递的

    评论

报告相同问题?

悬赏问题

  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
  • ¥15 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示
  • ¥15 NAO机器人的录音程序保存问题
  • ¥15 C#读写EXCEL文件,不同编译