注册 登录
编程论坛 C语言论坛

求大神救救孩子吧,为啥error C2115: 'function' : incompatible types这个问题,程序如下

还是你大爷 发布于 2019-11-01 11:13, 3745 次点击
只有本站会员才能查看附件,请 登录


#include "stdio.h"
struct stu
{   
int num;   
    float score;
};
void funa(struct stu *t)
{   
    t->num=123;   
    (*t).score=567.0;  //注意指针的这两种引用成员的方式
}
/*void funa(struct stu t)
{   
    t.num=123;   
    t.score=567.0;  //注意指针的这两种引用成员的方式
}*/
void main()
{
struct stu a={1000102,62.0};
funa(a);
printf("%d",a.num);
}
2 回复
#2
rjsp2019-11-01 11:23
不要贴图,VC显示出的编译错误信息本身也是文字格式,可以被拷贝粘贴的。

struct stu a={1000102,62.0};
funa(a); // 这里你给 funa 的参数类型是 struct stu
但 funa 的函数原型是 void funa(struct stu *t),它要的参数类型是 struct stu*
#3
bcbbcclbbc2019-11-01 21:07
修改结构体内部的数据需要将结构体变量的地址传送给函数。

结构体不像数组一样,数组名可以表示为数组的首地址传递给函数
而结构体变量名,只是一个变量,需要使用运算符“&”来表示结构体变量的地址。
1