理解指针
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;
}
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 为什么使用 "this" 指针调用派生成员函数?
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用指针从C++中的数组中获取最大值
- 助记符和指向成员语法的指针
- 嵌入方指针压缩已禁用
- 数组的指针从不分段故障
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- 何时在引用或唯一指针上使用移动语义
- QMetaObject invokeMethod的基于函数指针的语法
- 如何从 std::atomic 中提取指针 T<T>?
- 如何在 C# 中映射双 C 结构指针?
- C++将浮点指针值舍入为小数位数
- 为什么++(*p)更改指针值
- 调整大小后指向元素值的指针unordered_map有效?
- 正在将指针转换为范围
- 使用指向成员的指针将成员函数作为参数传递
- 将OpenCV C++重写为EmguCV C#-如何使用指针
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错