请问为什么&weight出现错误

#include
void kg21b (double *a);

int main(){
    double weight = 0;
    void kg21b( &weight);
    printf("%lf",weight);
    
    return 0;
}

void kg21b(double *a){
    double kg;
    kg = (100/(2.2046));
    *a = kg;
}

该回答引用ChatGPT
这个程序会报错是因为你在调用函数时,多加了一个 &。在函数调用语句中,& 符号表示取地址,但是对于函数参数,不需要取地址,所以应该将代码修改为:

kg21b(&weight);

这样就不会报错了。

去掉第6行前面的void即可,调用函数时,前面的返回类型不需要写,所以去掉void即可,修改如下:

#include<stdio.h>
void kg21b (double *a);
 
int main(){
    double weight = 0;
    kg21b( &weight);
    printf("%lf",weight);
    
    return 0;
}
 
void kg21b(double *a){
    double kg;
    kg = (100/(2.2046));
    *a = kg;
}
 

img