gpt4 book ai didi

c - 功能参数差异

转载 作者:行者123 更新时间:2023-11-30 19:00:18 24 4
gpt4 key购买 nike

这里有两个相同的代码,但具有不同的函数参数,但它们似乎输出相同的东西。

void get_rate_drop_factor(int *rate_ml, int *drop, int *drop_per_min)
{
printf("Enter rate in ml/hr=> ");
scanf("%d", rate_ml);
printf("Enter tubin's drop factor(drop/ml)=> ");
scanf("%d",drop);
*drop_per_min = (*rate_ml / 60) * *drop;
printf("The drop rate per minute is: %d\n\n", *drop_per_min);

}

据我了解,参数中带有“*”的变量是输出参数。

void get_rate_drop_factor(int *drop_per_min)
{
int rate_ml, drop;
printf("Enter rate in ml/hr=> ");
scanf("%d", &rate_ml);
printf("Enter tubin's drop factor(drop/ml)=> ");
scanf("%d",&drop);
*drop_per_min = (rate_ml / 60) * drop;
printf("The drop rate per minute is: %d\n\n", *drop_per_min);

}

当我调用该函数时,这两个代码似乎输出相同的内容。那么“*”对于参数到底有什么作用呢?我认为我没有完全理解参数的概念。

请详细解释一下,因为我真的很想学习这个,但这真的很令人沮丧。

最佳答案

from what I learned, those variables with '*' in the parameters are output parameters.

您正确地指出此类参数是输出参数。

因此,在第一个函数中,所有三个参数都是输出参数。

在第二个函数中只有一个输出参数。因此函数的调用者无法获取用户在函数中输入的rate_mldrop的值。

因此,如果函数的调用者需要获取所有三个值,他应该使用第一个函数声明。如果他只需要结果计算的值,他应该使用第二个函数声明。

关于c - 功能参数差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60178888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com