int(* function)(int,int)和int * function(int,int)之间的区别

时间:2013-11-17 10:39:20

标签: c pointers

我正在研究C的指针,并且在Deitel的书中,当表达函数时,int(*function)(int,int)int*function(int,int)之间没有区别。

3 个答案:

答案 0 :(得分:3)

第一个是指向函数的指针,它接收两个int个参数,第二个只是一个函数,它返回指向int的指针并接收两个int参数。这是两个非常不同的编程实体。首先是数据类型,第二是代码(函数)。

答案 1 :(得分:2)

第一个是指向返回int的函数的指针。第二个是函数声明,它返回指向int的指针。

答案 2 :(得分:2)

在C中阅读类型的经验法则:

  1. 从您定义的标识符开始

    • int(*function)(int,int)中,“function是......”

    • int*function(int,int)中,“function是......”

  2. 向右阅读,直到您到达行尾或右括号

    • int(*function)(int,int)中,您立即点击了括号。

    • int*function(int,int)中,“...函数采用intint类型的两个参数......”

  3. 从您开始的地方向左阅读

    • int(*function)(int,int),“...指向......”

    • int*function(int,int)中,“...返回指向int的指针。”

  4. 如果因为点击右括号而停止,请按照步骤2& 3再次从右括号开始并返回到相应的左括号。

    • int(*function)(int,int)中我们目前只阅读(*function),所以我们继续:“...带有intint类型参数的函数。 。“并备份,”......返回int

    • 我们在另一条线上结束了。

  5. 全部放在一起:

    int(*function)(int,int)

    function是一个指向函数的指针,该函数接受intint两个返回int

    的参数

    int*function(int,int)

    function是一个函数,它接受intint类型的两个参数,并返回指向int的指针。