【发布时间】:2020-05-27 10:52:17
【问题描述】:
这是两个相同的代码,但具有不同的函数参数,但它们似乎输出相同的东西。
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);
}
当我调用该函数时,这两个代码似乎在输出相同的内容。那么'*'对参数究竟做了什么? 我不认为我完全理解参数的概念。
请好好解释一下,因为我真的很想学习这个,这真的很令人沮丧。
【问题讨论】:
-
第一个函数返回 rate_ml 和 drop 为调用者和第二个没有
-
@John Boi 说真的,没人知道 '*' 在你的函数中做了什么。:)
标签: c function pointers function-pointers