c语言结构体做函数的问题,c语言结构体简单例题
C语言中,用结构体作函数参数的问题?
可以的,这样写:
在永仁等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站建设、成都做网站 网站设计制作按需网站策划,公司网站建设,企业网站建设,品牌网站建设,全网整合营销推广,成都外贸网站制作,永仁网站建设费用合理。
test((RGBColor){0x0, 0x1, 0x2});
这个意思是把{0x0, 0x1, 0x2}强制转化为RGBColor类型。从语法语义上面是没问题的,在GCC编译没问题。
但是51上面没实验,按C标准能说得通,你可以试一试。
有关C语言中结构体变量做函数参数的问题
其实,结构名就是一个变量,由于你的形参和你的实参取名是一样的。而且对于形参肯定会变
实参不会变。所以,你中间的maxA变量,其实是子函数的形参变了。但是你的实参没变
因此结果没变
改,对于子函数中,你在void Max_Element_Find(struct Max_Element* maxA,double *A,int n)
Max_Element_Find(maxA,A,n);这样就好了
c语言中结构体变量做函数参数的问题
你有几处错误,以下是修改后的代码
#includestdio.h
#define M 3
struct date
{
int num;
char name[10];
char sex;
int age;
float score[5];
}student[M];
void f(struct date student[]);
void main()
{
int i,j;
printf("请按顺序输入学生数据\n");
for(i=0;iM;i++)
{
printf("姓名:");
scanf("%s",student[i].name);
printf("学号:");
scanf("%d",student[i].num);
printf("性别:");
scanf("%c%c",student[i].sex);
printf("年龄:");
scanf("%d",student[i].age);
printf("语文成绩:");
scanf("%f",student[i].score[0]);
printf("数学成绩:");
scanf("%f",student[i].score[1]);
printf("英语成绩:");
scanf("%f",student[i].score[2]);
if(i!=2)
printf("请输入下一个学生的数据\n");
}
/*for(i=0;iM;i++)*/
f(student);
for(i=0;iM;i++)
printf("第%d位同学的总分为%f,平均分为%f\n",i+1,student[i].score[3],student[i].score);
}
void f(struct date student[])
{
int i,j;
for(i=0;iM;i++)
{
for(j=0;j3;j++)
{
student[i].score[3]+=student[i].score[j];
student[i].score[4]=student[i].score[3]/3;
}
}
}
C语言中结构体数组名作为函数参数的问题
函数定义和声明的参数应该是: int oid_check(struct snmp_seq sp, struct rmc1207 * ramp, int BUFFER_SIZE);
函数调用: flag=oid_check(sp, ramp, BUFFER_SIZE);
-------------------------------------------------------------------------------
在这里, ramp 是结构体数组的指针
C语言 结构体变量作为函数参数的问题
gettimediff 参数类型不对,应该是 LPSYSTEMTIME ,而不是 SYSTEMTIME。其它地方也相应的改一改就行了。
C语言,结构体和函数的问题。
#includestdio.h
struct math
{
float real;
float image;
};
void main()
{
struct math s1,s2,z;
printf("x的实部值和虚部值:");
scanf("%f %f",s1.real,s1.image);
printf("y的实部值和虚部值:");
scanf("%f %f",s2.real,s2.image);
z=add(s1,s2);
printf("相加的结果:z=%f+%fi\n",z.real,z.image);
}
struct math add(struct math s1,struct math s2)
{
struct math z;
z.real=s1.real+s2.real;
z.image=s1.image+s2.image;
return z;
}
回答的人还挺多,居然没楼上的手快,看来我只有增加内容了!
说明:
局部函数需要一个返回值,给z。
这道题可以有三种解决方法
一、用指针,让局部函数返回值用指针传递,这样局部函数可以写void add...
二、把z定义成全局变量(就是在main函数外面定义z),然后局部函数里边不要重新定义z,这样可以把局部函数运算中的值保存下来。局部函数也可以写void add...
三、用返回值,就是局部函数不要写成void add...,让他带个返回值,返回给一个数,就是上面的程序就ok了
回答
追问struct math add(struct math s1,struct math s2) 这里为什么要定义成结构体?
{
struct math z;
z.real=s1.real+s2.real;
z.image=s1.image+s2.image;
return z;
}
因为返回值是结构体
网站栏目:c语言结构体做函数的问题,c语言结构体简单例题
浏览地址:http://pwwzsj.com/article/dsegohj.html