
在C语言中为什么执行过 #define N 2 #define M N+1 #define NUM (M+1)*M/2以后,NUM的值是8而不是6
2012-12-05
展开全部
#difine 只是宏定义中的单纯的替换 NUM = (M+1)*M/2 = (N + 1 +1)*N + 1/2 用N=2去运算 就是8了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
N开始等于2,然后M=N+1,所以M=3,(M+1)*M=4*3=12,所以NUM+(M+1)*M/2=6啊,为什么要等于8呢?
追问
我现在理解了,NUM=(M+1)*M/2=(N+1+1)*N+1/2=(2+1+1)*2+1/2=8,宏定义跟平常的数学计算不一样,宏定义只把数依次简单的代入就可以了,不需要加任何的括号。希望对你有帮助哦,现学现卖。呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
宏定义 是将其代入进去的
所以· 你的NUM就成了·(2+1+1)*2+1/2=8
所以· 你的NUM就成了·(2+1+1)*2+1/2=8
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询