
求各位大大帮忙,解释一道这道C语言的题目,这道题的输出是什么,求解释,为什么是原来那个啊
#include<stdio.h>#include<string.h>typedefstruct{charname[9];charsex;floatscore[2];}S...
#include <stdio.h>
#include <string.h>
typedef struct
{ char name[9];
char sex;
float score[2];
} STU;
voide f(STU a)
{ STU b={"Zhao",'m',85.0,90.0};
int i;
strcpy(a.name,b.name);
a.sex=b.sex;
for(i=0;i<2;i++)
a.score[i]=b.score[i];
}
main()
{ STU c={“Qian”,'f',95.0,92.0};
f(c);
printf("%s,%c,%2.0f,%2.0f\n",c.name,c.sex,c.score[0],c.score[1]);
} 展开
#include <string.h>
typedef struct
{ char name[9];
char sex;
float score[2];
} STU;
voide f(STU a)
{ STU b={"Zhao",'m',85.0,90.0};
int i;
strcpy(a.name,b.name);
a.sex=b.sex;
for(i=0;i<2;i++)
a.score[i]=b.score[i];
}
main()
{ STU c={“Qian”,'f',95.0,92.0};
f(c);
printf("%s,%c,%2.0f,%2.0f\n",c.name,c.sex,c.score[0],c.score[1]);
} 展开
4个回答
展开全部
f(c)调用的时候你是 值 传递,所以执行 f 的时候相当操作的是 c 的一个拷贝,所以不会改变原来的啊, 可以采用引用传递 或 是指针传递 应该就能改变了
展开全部
楼上正解。。。。。。。。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-03-14
展开全部
用结构体做函数实参,传递方式为值传递,形参改变 但实参不变。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询