在课本案例中,# define PI 3.1415926 ,只要在文件中出现的PI均可用3.1415926来代替。[1]
1 # define N 2 2 # define M N+1 3 # define NUM (M+1)*M/2 4 main() 5 { 6 printf("%d",NUM); 7 8 }
那显示结果应该是什么呢?
===============计算中==============================
有很多童鞋得出结果是6,最初我得到的结果也是6,可是运行结果是8 。为什么呢?
重点来啦:
我们忽略了代替两个字,# define 的作用就是宏定义,用来替代常量的。因此:(M+1)*M/2等价于(N+1+1)*N+1/2 带入N的值,结果是8,明白了么?同学们!