代码如下:
add(a,b)和sub(a.b) 的 add 和 sub 其实是保存了函数的变量名,指向了一段代码(函数体)所在的内存空间,你也可以理解为如果不加括号,就不执行函数。所以这样一来就可以解释13行和15行的作用了,这两句根据 calc函数传进来的参数(运算符号)的不同,将add或sub函数在内存的地址返回,赋值给 f1 和 f2 ,这样 f1 和 f2 就指向了 add 和 sub 指向的函数体所在的位置,就可以当做 add 和 sub 那样使用了。
f1=calc('+')
在这里调用calc函数,并传了一个参数'+',
calc函数执行:
opr变量接受参数,
if语句判断,opr是否等于'+'',
相等,执行 return add
也就是返回了add函数。
然后赋值给f1。
#这里涉及一个知识点,当你光写函数名,不加括号的时候,这个函数是不执行的,不加括号表示的是调用函数的地址