将指针传递给函数

时间:2014-08-28 07:08:39

标签: c++ function-pointers

我需要知道

之间的区别
int *testPointer  = NULL;
int a=10;
testPointer=&a;
testPointer->someFunc();

int *testPointer  = NULL;
int a=10;
testPointer=&a;
someFunc(testPointer);

其次,这将是调用someFunc函数的更好方法,这样我就可以访问指针testPointer指向的数据并可能修改它。

2 个答案:

答案 0 :(得分:3)

在第一种情况下:

testPointer->someFunc();

您正试图致电testPointer函数someFunc(),因为它不是int。 在第二种情况下:

someFunc(testPointer);

您正在将testpointer传递给someFunc()

答案 1 :(得分:2)

  

我需要知道

之间的区别
int *testPointer  = NULL;
int a=10;
testPointer=&a;
testPointer->someFunc();
     

int *testPointer  = NULL;
int a=10;
testPointer=&a;
someFunc(testPointer);

第一个片段,“testPointer-> someFunc();” 无法编译。 “testPointer”是一个int类型变量,它没有名为“someFunc()”的方法。

第二个片段,将编译。它会调用“someFunc()”。如果“someFunc()”声明为“void someFunc(int *)”

,这将有效
  

其次哪个会更好地调用someFunc函数,这样我   可以访问指针testPointer指向的数据并可能修改   它

第二个代码段是调用“someFunc()”的正确方法,它将能够修改“testPointer”指向的数据的值。