注册 登录
编程论坛 C++教室

改一个结构体的错误

宇智波曌 发布于 2011-05-24 12:46, 360 次点击
程序代码:
#include <stdio.h>
struct stu
{

 char name[10];

 int num;
};
void f(struct stu c)
{
    struct stu b={"LiSiGuo",2042};
    c=b;
}
void main()
{
    struct stu a={"YangSan",2041},b={"WangYin",2043};
    f(b);
    printf("%d %d\n",a.num,b.num);
}

请问这个程序哪错了。我想输出:2014、2042,但是输出了0、0

[ 本帖最后由 宇智波曌 于 2011-5-24 23:18 编辑 ]
2 回复
#2
rjsp2011-05-24 15:04
#include <stdio.h>
struct stu
{
    char name[10];
    int num;
};
void f( struct stu* pc )
{
    struct stu b={ "LiSiGuo", 2042 };
    *pc = b;
}
int main()
{
    struct stu a={"YangSan",2041}, b={"WangYin",2043};
    f( &b );
    printf("%d %d\n",a.num,b.num);

    return 0;
}
#3
张瑞涛2011-05-24 15:08
显然,你那个printf 语句把引号引得有点远了。另外,你那个函数相当于没有调用。因为是无返回值的,形参变实参不变。
1