其实这个是困惑了我好久的问题,没想到在上机课做到的题里找到了答案——我的困惑是:#define与const到底有什么区别。
题目:
代码如下 | 复制代码 | ||||||||||||||||||||||||
#define N 2 #define M N 1 #define NUM 2*M 1 main( ) { int i; for(i=1;i<=NUM;i ) printf(“%dn”,i); } 该程序中的for循环执行的次数是( ) A) 5 B) 6 C) 7 D) 8 答案是6,跑过以后怎么都不理解,这是因为忽略了#define的重大不同。 #define进行的其实是简单的代入, 换句话说,NUM去找了M的表达式,把M的表达式代入,得出2*N 1 1,接着再去找N是多少,结果是2*2 1 1,因此等于6,而变量的话,毫无疑问则是进行了运算之后得出了的结果。 补充 1.简单的define定义
|