gpt4 book ai didi

难道我们不能为#define写一个可执行语句吗?

转载 作者:行者123 更新时间:2023-11-30 15:42:30 24 4
gpt4 key购买 nike

为什么我得到27?不能#define取可执行语句5+2?

#include<stdio.h>
#include<conio.h>
#define x 5+2
void main()
{
int i;
i=x*x*x;
printf("%d",i):
getch();
}

输出:

27

我应该得到 343 作为答案。

最佳答案

首先,这不是可执行语句,而是表达式。不,它不应该是 343,因为表达式没有括号。因此,乘法优先于加法,因此计算的表达式为

5+2*5+2*5+2

这是

5+(2*5)+(2*5)+2 = 27

这个小例子说明了宏的危险。您应该始终将表示表达式的宏的内容放在括号内。此外,您应该始终将宏表达式的参数括起来。

关于难道我们不能为#define写一个可执行语句吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20151154/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com