c语言指针+函数报错

问题遇到的现象和发生背景

win10+dev-c++

问题相关代码,请勿粘贴截图
#include
int main(void)
{
    float sum1(float &x,float y);


    float x,y,z;
    z=sum1(1.0,2.8);
    printf("x=%f,y=%f,z=%f",x,y,z)

    return 0;
}
float sum1(float &x,float y){
    x=x+y;
    return x;
}

运行结果及报错内容

报错了说是少一个标点符号 [Error] expected ';', ',' or ')' before '&' token

我想要达到的结果

测试通过指针改变形参的效果。

C语言不认识引用类型,改为指针吧

#include<stdio.h>
int main(void)
{
    float sum1(float *x,float y);
 
 
    float x=1.0,y=2.8,z;
    z=sum1(&x,y);
    printf("x=%f,y=%f,z=%f",x,y,z);
 
    return 0;
}
float sum1(float *x,float y){
    return *x+y;
}
 

printf哪里少了个;

第九行,;

这么改,供参考:

#include<stdio.h>
int main(void)
{
    float sum1(float* x, float y); //修改
    float x=1.0, y=2.8, z;
    z = sum1(&x, y);
    printf("x=%f,y=%f,z=%f", x, y, z);//结尾缺了';'分号

    return 0;
}
float sum1(float* x, float y) { //修改
    (*x) = (*x) + y;             //修改
    return (*x);                 //修改
}

1.把指针前的&,改为*就好啦

2.把15行的printf("...")后面加上;


#include<stdio.h>
int main(void)
{
    float sum1(float *x,float y);
 
 
    float x,y,z;
    x=1.0;
    y=2.8;
    z=sum1(&x,y);
    printf("x=%f,y=%f,z=%f",x,y,z);
 
    return 0;
}
float sum1(float *x,float y)
{
    return *x+y;
}

望采纳

你不是c++ 吗?
函数参数用引用一点毛病没有,唯一的问题时printf 少了个分号


可以查看手册:c语言-指针 中的内容