通过 C 中的指针将函数的 return 值传递给另一个函数
Passing return value of a function to another function via pointers in C
我正在尝试为学校制作一个掷骰子游戏,但我的 teacher/peers 出于某种原因不喜欢使用指针。
我有以下代码:
double get_wager_amount (void) {
double wager;
printf("How much would you like to wager?\n");
scanf(" %f", &wager);
return wager;
}
并希望 return 将赌注变量放入另一个函数,该函数根据用户银行帐户中的金额验证赌注金额。
类似于下面的代码,但这显然不起作用,因为它重新打印了上面赌注和银行帐户函数中的所有内容。
int check_wager_amount (int *wager, int *account_balance)) {
double wager = 0, balance= 0;
if (wager <= get_wager_amount())
{
return 1;
} if (balance <= get_bank_balance())
{
return 0;
} else
{
printf("You either have no money or the program is not functioning correctly");
}
}
有人可以解释一下如何通过指针或引用将函数的 return 值传递给其他函数吗?我找不到有关如何在 C 中执行此操作的任何信息。谢谢。
你想要这个吗?
check_wager_amount(&get_wager_amount()); // This should work, I guess
我不确定这是否不正确使用,但如果上面产生错误(我自己对 C 很陌生),您总是可以使用
double wager = get_wager_amount(); // Store the variable somewhere
check_wager_amount(&wager); // Reference the variable
我还注意到您的代码无效。您要求以 int 形式下注,但后来将其声明为 double。指针是一个 int,但您应该使用 double*(不是 int,而且绝对不是 int*)来存储您的指针。
我正在尝试为学校制作一个掷骰子游戏,但我的 teacher/peers 出于某种原因不喜欢使用指针。
我有以下代码:
double get_wager_amount (void) {
double wager;
printf("How much would you like to wager?\n");
scanf(" %f", &wager);
return wager;
}
并希望 return 将赌注变量放入另一个函数,该函数根据用户银行帐户中的金额验证赌注金额。
类似于下面的代码,但这显然不起作用,因为它重新打印了上面赌注和银行帐户函数中的所有内容。
int check_wager_amount (int *wager, int *account_balance)) {
double wager = 0, balance= 0;
if (wager <= get_wager_amount())
{
return 1;
} if (balance <= get_bank_balance())
{
return 0;
} else
{
printf("You either have no money or the program is not functioning correctly");
}
}
有人可以解释一下如何通过指针或引用将函数的 return 值传递给其他函数吗?我找不到有关如何在 C 中执行此操作的任何信息。谢谢。
你想要这个吗?
check_wager_amount(&get_wager_amount()); // This should work, I guess
我不确定这是否不正确使用,但如果上面产生错误(我自己对 C 很陌生),您总是可以使用
double wager = get_wager_amount(); // Store the variable somewhere
check_wager_amount(&wager); // Reference the variable
我还注意到您的代码无效。您要求以 int 形式下注,但后来将其声明为 double。指针是一个 int,但您应该使用 double*(不是 int,而且绝对不是 int*)来存储您的指针。