以下两个声明之间有什么区别:
1. int foo(int);
2. int foo(int());
我不确定这两个声明是否相同。是什么让(2)
与(1)
不同?
答案 0 :(得分:13)
int foo(int);
是函数的声明,它将整数作为参数并返回一个整数
int foo(int());
声明一个函数作为参数“指向函数的指针返回int
并且使用{无参数[在C ++中]和未指定数量的参数[在C]中”并返回整数。
(2)
相当于int foo(int (*pf)())
和int foo(int f())