gpt4 book ai didi

C++ 指向函数的指针作为参数

转载 作者:搜寻专家 更新时间:2023-10-31 00:19:40 24 4
gpt4 key购买 nike

#include<iostream>

using namespace std;

void passPointer(int *pointer)
{
cout << *pointer;
}

int main()
{
int *iNum = new int(25);

passPointer(iNum);

return 0;
}

有人能给我解释一下为什么当我在 main 中使用 passPointer() 函数时,它必须是 passPointer(iNum) 而不是 passPointer(* iNum)?是因为如果我使用 *,我会在参数中取消引用它吗?请尽可能详细地解释,因为我有点困惑。

谢谢大家。

最佳答案

这是因为你声明了passPointer来接受一个参数输入 int*iNum 的类型为 int*,因此可以直接传递给传递指针*iNum 的类型为 int,并且没有隐式intint* 的转换,所以你不能将它传递给 passPointer

更一般地说,在 C++ 中(以及几乎所有其他类型的语言,如好吧),每个表达式和每个变量都有一个类型。的类型表达式是根据其操作数的类型来表示的:如果一元 * 的操作数类型是 T* (并且类型必须是指针),那么结果的类型是T。并调用一个函数,您必须提供正确数量的参数和正确的类型。

关于C++ 指向函数的指针作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7685862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com