?:中为什么不能用形参进行比较

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

为什么如图所示的用条件表达式?:就会报错,这个就只能用if语句么

问题相关代码,请勿粘贴截图

#include<stdio.h>
void large(double* ,double*);

int main() {
double a, b;
printf("请输入两个不一样的浮点数\n");
scanf("%lf%lf",&a,&b);

large(&a, &b);
printf("现在ab的值为%.2lf,%.2lf\n",a,b);




return 0;

}

void large(double *a,double *b) {
if (*a > *b) {
*b = *a;
}
else
*a = *b;

}

运行结果及报错内容

img

img

我的解答思路和尝试过的方法
我想要达到的结果
(*a > *b) ? (*b = *a) : (*a = *b);