1.使用宏定义时,能否使用自加或自减
#define SQ(a) ((a) * (a))
void main()
{
int a = 6;
int b;
b = SQ(a++);
printf("%d %d \n",a,b);
return;
}
结果:
8 36
这样写很容易误导以为a已经自加,b=49,实际上是使用宏后在自加,这样写是不规范的,应该在使用宏时,禁止使用自加自减,因为宏参数是不会发生改变的
2.操作符
2.1 当除操作符的运算量是整型量时,运算结果也是整型。
如:3/5=0
2.2 求余操作符的运算量只能是整型。
如:3%2=1,而3.0%2有误
(3)自加、自减操作
k = 2;
x = k++;
结果:x = 2,k = 3
k = 2;
x = ++k;
结果:x = 3,k = 3
k = 2;
x = k--;
结果:x = 2,k = 1
k = 2;
x = --k;
结果:x = 1,k = 1