#include <iostream> using namespace std; char fun(char *str) { return str[0]; } void main() { char *s = "one", a[5] = {0}, (*f1)(char *) = fun, ch = 'a'; char ans = f1(&ch); cout << ans << endl; ans = (*f1)(s); cout << ans << endl; ans = f1(s); cout << ans << endl; cout << f1 << endl; cout << *(f1) << endl; /* 输出结果: a o o 001F1032 001F1032 */ }
从输出结果上来看,加*与不加*的结果是一样的.
总感觉写法不一样,意义上应该有不同,求解答!!!
没有不同,两个都是正确的语法。加*表示使用指针指向的函数,而函数名本身就是地址,不加*号也说得通,所以两者都被看做是正确语法,现在的编译器都支持这两种写法