c++ - 指针可以带参数吗?这3种指针有什么区别

标签 c++ c pointers

我想知道以下语句的含义是什么。

int *abc(int,int);
int (*abc)(int,int);

以及这些指针与普通指针有何不同。例如:

int *ptr;

谢谢

最佳答案

Can a pointer take arguments?

不,指针只是一个存储内存位置地址的变量。

int *abc(int,int);

这是函数abc 的声明,它接受两个参数,均为int 类型,并返回一个指向int 类型的指针。

int (*abc)(int,int);

这里,abc是一个指针,它可以指向一个函数,该函数接受两个int类型参数并返回一个int
假设你有一个函数 fun:

int fun(int a, int b) {
    return a + b;
}

abc 可以指向 fun(),如下所示:

abc = fun;

然后你可以使用 abc 指针调用函数 fun,如下所示:

abc(4, 5);

how these pointers are different from the ordinary pointer. ex:
int *ptr;

这里,ptr是一个指针,可以存储int类型的地址。

因此,所有的指针都存储一些内存位置,区别在于它们指向的类型的地址。

关于c++ - 指针可以带参数吗?这3种指针有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50304546/

相关文章:

c++ - 是否可以删除取消引用的指针

C++:混入和多态性

c - 在 C 中以编程方式获取网络链接类型和速度

c++ - 创建乘积数组,其中包含可被 A[i] 整除的数组所有元素的乘积,无需使用除法运算符

c - 将 fprintf 与 time.h 一起使用时避免换行

c++ - 将 “Extension methods support” 添加到 C++ 的错误指针分配技巧将来会成为问题吗?

c++ - 函数名称修改。 _cdecl约定

c++ - OpenCV:如何检测特定颜色的线条?

c++ - 为什么 int 指针给我 float ?

swift - 来自调试器的消息 : Terminated due to memory issue #1