1、写一个“标准”宏
交换两个参数的宏定义为:
#define SWAP(a,b) (a)=(a)+(b);(b)=(a)-(b);(a)=(a)-(b);
#define SWAP(x,y) x=x*y;y=x*y;x=x*y; //要求x,y不等
输入两个参数,输出较小的一个:#define MIN(A,B) ((A)<(B)?(A):(B))
2、位操作:给定一个整型变量a ,写两段代码,第一个设置a的bit3,第二个清楚a的bit3。在以上两个操作中,要保持其他位不变。
#define BIT3 (0x1<<3)
static int a;
void set_bit3(void)
{
a=a|BIT3;
}
void clear_bit3(void)
{
a=a&~BIT3;
}
3、
char str1[]="abc";
char str2[]="abc";
const char str3[]="abc";
const char str4[]="abc";
char *str5="abc";
char *str6="abc";
const char *str7="abc";
const char *str8="abc";
cout<<(str1==str2)<<endl;
cout<<(str3==str4)<<endl;
cout<<(str5==str6)<<endl;
cout<<(str7==str8)<<endl;
结果: 0 0 1 1
解答:str1,str2,str3,str4是数组变量,它们有各自的内存空间
str5,str6,str7,str8是指针,它们指向相同的常量区域