我正在研究C的指针,并且在Deitel的书中,当表达函数时,int(*function)(int,int)
和int*function(int,int)
之间没有区别。
答案 0 :(得分:3)
第一个是指向函数的指针,它接收两个int
个参数,第二个只是一个函数,它返回指向int的指针并接收两个int
参数。这是两个非常不同的编程实体。首先是数据类型,第二是代码(函数)。
答案 1 :(得分:2)
第一个是指向返回int
的函数的指针。第二个是函数声明,它返回指向int
的指针。
答案 2 :(得分:2)
在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
的指针。