C define与const的不同
其实这个是困惑了我好久的问题,没想到在上机课做到的题里找到了答案——我的困惑是:
#define
与const
到底有什么区别。
题目:
1#define N 2
2#define M N+1
3#define NUM 2*M+1
4int main(void)
5{ int i;
6 for(i=1;i<=NUM;i++) printf(“%d\n”,i);
7}
8
该程序中的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,而变量的话,毫无疑问则是进行了运算之后得出了的结果。
评论 (0)