将指针传递给函数

Passing a pointer to function

本文关键字:函数 指针      更新时间:2023-10-16

我需要知道之间的区别

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

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

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

在第一种情况下:

testPointer->someFunc();

您正试图调用testPointer的函数someFunc(),但它没有,因为它是int。在第二种情况下:

someFunc(testPointer);

您正在将testpointer传递给函数someFunc()

我需要知道之间的区别

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"所指向的数据的值。