当 c++ 说"int 与 int* 不兼容"时该怎么办?

What to do when c++ say "int is not compatible with int*"?

本文关键字:int 不兼容 怎么办 c++      更新时间:2023-10-16

当一个东西被声明为int*而不是int时,我应该使用什么?

-> Function: void addIntOption(char *option, int *var, int min, int max)
-> Usage: addIntOption("TEXT", **???**, 0, 1000);

将指针传递给它,例如:

int var;
addIntOption("TEXT", &var, 0, 1000);

您必须将指针传递给一个整数,而不是整数本身,例如:

int xyzzy = 42;
addIntOption("option", &xyzzy, 0, 100);

&是运算符的地址,它为您提供了一个指向整数变量xyzzy的指针(或者,如果您喜欢该术语,则为的地址)。

您应该退后一步,注意错误:函数想要一个指针,您想要传递一个int。这些冲突:您理解错误。解决办法是弄清楚你误解了什么。

正如注释所示,函数可能希望您"给我一个指向您想要修改的int值的指针"。当您希望函数修改某些内容时,这是C中常见的模式。有时它在C++中甚至很有用,尽管通常你想使用引用来做这类事情。

因此,请检查文档;如果以上是正确的(并且您仍然希望使用该函数),那么您需要获得一个指向您想要修改的值的指针;例如,如果var指的是对象,那么&var是指向它的指针。