我正在研究 C 的指针,从 Deitel 的书中我没有得到函数表达时int(*function)(int,int)和之间的区别。int*function(int,int)
阅读 C 语言类型的经验法则:
从您定义的标识符开始
中int(*function)(int,int),“function是一个……”
中int*function(int,int),“function是一个……”
向右阅读,直到读到行尾或右括号
在 中int(*function)(int,int),您立即点击了括号。
在int*function(int,int),“...函数接受两个类型int和int...的参数”
从您开始的地方向左阅读
在int(*function)(int,int),“...指向...的指针”
在 中int*function(int,int),“...返回一个指向 的指针int。”
如果您因为遇到右括号而停止,请从右括号开始再次执行步骤 2 和 3,然后返回到相应的左括号。
到目前为止,int(*function)(int,int)我们只阅读了这些内容(*function),因此我们继续:“...接受类型参数的函数int和int...”并备份,“...返回一个int”
我们到达了另一条线的末端。
把它们放在一起:
int(*function)(int,int)
function是一个指向函数的指针,该函数接受两个类型的参数int并int返回一个int
int*function(int,int)
function是一个函数,它接受两个类型为int和 的参数int,并返回一个指向 的指针int。