实参是地址则形参必须是指针吗?

形参可以也是指针吗?
2025-04-07 08:39:29
推荐回答(2个)
回答1:

能够正确传递参数就行。实参是地址常量或指针时,形参需要是和实参类型相同的指针,或者是void*指针。当然,可以用const/volatile之类的类型限定符修饰形参类型。
例如
struct X
{
int b;
};
void foo(void* x);
void foo1(char* x);
void foo2(int* x);
void foo3(struct X x);
char a[10];
调用foo(a)、foo1(a)是可以的,但调用foo2(a)、foo3(a)就不行,因为无法转换a到int*或struct X类型而无法传递参数。如果用foo2((int*)a)也能够编译通过。
----
[原创回答团]

回答2:

是看你的形参,不管你的实参!形参是什么,就传什么实参给它啊!
如形参是指针,你就传指针或地址!