编程小白C语言带参数的宏定义

说明

在宏定义中,字符串内的形参通常要用括号括起来避免出错

例题演示

分析一下代码输出结果:

#include<stdio.h>
#define M(y) y*y
int main()
{
	int a,b;
	printf("请输入a的值:");
	scanf("%d",&a); 
	b=M(a+1);
	printf("b=%d",b); 
	return 0;
 } 

思路分析

如果a=1,那么b的值等于多少呢? b=4?不对!!!

b=3,为什么呢?

分析一波,b=4的条件是(a+1)*(a+1) ,其中a等于1,        a+1--->y   这么理解没错吧,但是 这个y是没有括号的!!

仔细看 仔细看 仔细看!

所以 应该是  b =  a+1 * a + 1   当a=1时,b=3 

给y加上括号的话

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章