C define与const的不同

其实这个是困惑了我好久的问题,没想到在上机课做到的题里找到了答案——我的困惑是:#defineconst到底有什么区别。

题目:

#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,而变量的话,毫无疑问则是进行了运算之后得出了的结果。

扩展阅读:http://blog.csdn.net/benny5609/article/details/2314541

植入部分

如果您觉得文章不错,可以通过赞助支持我。

如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。

标签: 知识, 语法, 题目

添加新评论