理解指针

Understanding pointers

本文关键字:指针      更新时间:2023-10-16

我知道这看起来很简单,但对我来说没有意义。

我需要做的是:我需要在一个函数中提示帐户余额A,返回到main,在另一个函数中提示帐户余额B,返回到main,然后我需要将两个变量传递给另一个函数,比较哪个更大,并将指针设置为balanceA或balanceB。然后,我需要在另一个函数中通过操作指针来操作帐户余额。

我对发生的事情的理解:通过将两个变量传递给一个函数,并设置指向较大帐户的指针,我可以操作指针,然后它将依次操作balanceA或balanceB的值,取较大的值(简单IF)

我对语法的理解(或缺乏理解):我需要通过引用传递两个帐户变量,并且在我的compare函数中,我需要创建一个新的指针变量,该变量将被设置为较高的帐户余额。

我的主要问题:我在哪里声明我的指针,什么是正确的语法这样做。我的"& & &"answers"*"都到哪里去了?

我的代码:

#include <iostream>
using namespace std;
float getBalanceA();
float getBalanceB();
int main()
{
   float balanceA = getBalanceA();
   float balanceB = getBalanceB();
   return 0;
}
float getBalanceA()
{
   float balanceA = 0;
   cout << "What is Sam's balance? ";
   cin >> balanceA;
   return balanceA;
}
float getBalanceB()
{
   float balanceB = 0;
   cout << "What is Sue's balance? ";
   cin >> balanceB;
   return balanceB;
}

提前感谢您的帮助!

使用&(引用操作符)创建指向变量的指针,使用*(解引用操作符)获取给定指针所引用的值

您正在寻找如下内容:

float* getLarger(float* a, float* b)
{
    if (*a > *b) // dereference pointers to compare the values
        return a;
    else
        return b;
}
int main()
{
    float balanceA = getBalanceA();
    float balanceB = getBalanceB();
    float* largerBalance = getLarger(&balanceA, &balanceB); // obtain pointers to balanceA/balanceB and pass them to the getLarger functoin
    *largerBalance += 1; // manipulate the larger balance by dereferencing it
    cout << "Sam's balance: " << balanceA << endl;
    cout << "Sue's balance: " << balanceB << endl;
    return 0;
}