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

use*_*691 1 c pointers

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

sqy*_*kly 7

阅读 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

    • 我们到达了另一条线的末端。

把它们放在一起:

int(*function)(int,int)

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

int*function(int,int)

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