Nob*_*fer -1 c++ double pointers
我有一个类型的变量double *,我用该行初始化为0:
double* angle = 0;
Run Code Online (Sandbox Code Playgroud)
然后我有一个函数,它接受两个类型的变量const CCoordinate,以及三个类型的变量double *作为参数.此函数获取const CCoordinate变量保存的值,并返回double *由函数内执行的计算返回的三个类型变量.
编辑
上述功能的声明是:
int InverseVincenty(const CCoordinate aStartPosition,
const CCoordinate aEndPosition,
double* aDistance,
double* aAngle12,
double* aAngle21);
Run Code Online (Sandbox Code Playgroud)
结束编辑
我现在正在尝试编写自己的函数,它将使用此函数计算三个double *变量,然后对double *变量执行自己的计算.但是,似乎我试图将值doubles与值进行比较double *,编译器给了我一些错误,说我不能这样做......
我想要做的计算类型包括:
if((a <= b + 5) || (a >= b -5)){
//do something
}
Run Code Online (Sandbox Code Playgroud)
其中a是a double,b是a double*.
编译器告诉我它不能从'double*'转换为'double',但我不是要尝试转换任何东西,只是试图比较两个变量所持有的值......这有可能吗?
我原以为,由于指针指向内存中的一个地址,该地址将保存一个与另一个变量等效数据类型的值(即double和指向double的指针),这是可能的吗?
如果没有,任何人都可以提出另一种方法来比较他们的价值观吗?
if((a <= *b + 5) || (a >= *b -5)){
//do something
}
Run Code Online (Sandbox Code Playgroud)
请注意,通过执行double* angle = 0;您不是初始化变量而是指针意味着角度将指向0.任何取消引用角度的尝试都将导致分段错误.
引用你的问题:
我原以为,由于指针指向内存中的一个地址,该地址将保存一个与另一个变量等效数据类型的值(即double和指向double的指针),这是可能的吗?
不是这种情况.您正确地说指针指向内存中的一个地址,该地址将保存与另一个变量具有等效数据类型的值.但是,您需要使用*运算符取消引用指针以访问指向的值.您可能希望查看一些介绍性指南,例如:this