C语言,这道题怎么理解啊?

来源:百度知道 编辑:UC知道 时间:2024/05/31 03:08:10
定义:#define f(x) x*x
所以: f(4+4) 为 4+4*4+4
我不明白,要我来理解,就成了 8*8

define 只是一个宏定义,仅仅完成替换的功能

就是说 只把X换成4+4 就形成了 4+4*4+4

所以应该加括号. f((4+4))就是楼主的理解了

那是道很简单的题 c语言的算法是有先后次序的

define是不负责运算符优先级的。如果你想得到8*8效果,你必须在代码手动地加上括号,如f((4+4)).这样就成了(4+4)*(4+4).