关于C语言刷题(#define宏定义函数的常见错误)

关于C语言刷题(#define宏定义函数的常见错误)

首先我们来先看对#define的定义

define,宏定义,C语言中预处理命令一种。分为无参宏定义和带参宏定义。无参宏定义的一般形式为:#define 宏名 字符串;带参宏定义的一般形式为:#define 宏名(参数表) 字符串;

其实#define不仅可以定义常见变量,也可以定义带参函数
在使用中一定要注意#define的边界问题(可以简单理解为数学中括号内表达式运算的法则)

在这边看一个简单的例题

#define M(x,y,z) x*y+z
main()
{
	int a = 1,b = 2,c = 3;
	printf("%d\n",M(a+b,b+c,c+a));
	//下列该程序的运行结果是()
	A   19
	B   17
	C   15
	D   12
}
解题过程

这边有一个注意点,就是千万不要先计算M()中的参数,而是直接将参数带入运算
计算结果如下:
a+b* b+c+c+a
= 1+2* 2+3+3+1
=12
正确答案是 D
但是博主在第一次做这道题的时候犯了一个非常低级的错误
错误计算过程如下
将M(3,5,4)
= 3*5+4
=19
选出了错误答案A
这里分享下博主自己自学C语言的新手错误
如有错误,请指出,博主会积极改正
谢谢
祝大家学习愉快

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值