C99 6.3.2.1/4
函数指示符是具有函数类型的表达式。除非它是 sizeof 运算符或一元 & 运算符的操作数,否则“函数返回类型”类型的函数指示符将转换为“指向函数返回类型的指针”类型的表达式。
据我了解,这表明除非将sizeof
运算符和一元运算&
符应用于函数;不会发生函数到指针的转换。但据我所见,
int (*p)(int) = &foo;
或者,
int (*p)(int) = foo;
两者似乎都有效。这表明两者&foo
和foo
是等价的。那么,如果一元运算&
符具有如上所示的效果,它会在哪里产生影响呢?