C程序结果说明

Rah*_*ham -4 c++

亲爱的,我有以下 C 代码,它给了我答案 = 11 正确,但我不能在这里挑重点。请解释是否有钥匙。

包括

using namespace std;

int main()
{
    #define square(x) x*x
    cout<<square(3+2);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Ama*_*dan 5

square(3+2)扩展为3+2*3+2,其计算结果为3 + (2 * 3) + 2

#define square(x) ((x) * (x)) 应该做你想做的。

(内括号解决了您提出的问题,外括号解决了您尚未发现的问题 :P 事实上,为了SQUARE以防万一,再解决另一个问题。阅读TruthSeeker 的链接了解详细信息。)