'+ =':左边的指针;需要正确的整体价值

时间:2010-05-10 12:08:28

标签: c++ c

我很困惑。我不能在漂浮物上使用它?它必须是整数吗?我尝试将其定义为一个点,但我想我无法将float转换为float *

//global definition
float g_posX = 0.0f;

&g_posX -= 3.03f;

5 个答案:

答案 0 :(得分:18)

您可能只是想这样做:

float g_posX = 0.0f;
g_posX -= 3.03f;

您的代码尝试执行的操作是从g_posX获取地址并从地址中减去3.03f。这不起作用,原因有两个:

  • 地址不是左值:无法分配。分配到地址将毫无意义。它会做什么,在内存中移动变量?
  • 指针运算只能使用整数来完成。分数地址不存在。

答案 1 :(得分:3)

如果你想从浮点数中减去,那么只需命名变量而不要取其地址:

g_posX -= 3.03f;

否则,&g_posXrvalue,您无法为其分配任何内容。

答案 2 :(得分:0)

好吧,&g_posX是浮点数的指针。指针是内存地址和(或多或少)内容。要增加浮动,只需删除&

答案 3 :(得分:0)

你不需要&在g_posX之前,只需要像

那样进行数学运算
g_posX -= 3.03f;

答案 4 :(得分:-1)

递增和递减运算符仅为整数数据类型定义,而不是浮点数,双精度等。