C define与const的不同
其实这个是困惑了我好久的问题,没想到在上机课做到的题里找到了答案——我的困惑是:#define
与const
到底有什么区别。
题目:
#define N 2
#define M N+1
#define NUM 2*M+1
int main(void)
{ int i;
for(i=1;i<=NUM;i++) printf(“%d\n”,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,而变量的话,毫无疑问则是进行了运算之后得出了的结果。
植入部分
如果您觉得文章不错,可以通过赞助支持我。
如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。