由于c++保留了c的大多数内容,因此,作为c中非常常见的宏定义自然也就被保留了下来。
在使用c++中的数组时,数组的初始内存必须是一个定值,是不能够进行修改的。但是,在编写较大的项目时,如果只是使用数字作为数组的标识就会显得十分麻烦。因为没有名字作为代称,我们在涉及到具体的数字时还需要不断返回数组定义位置查看。这时,通过宏定义就可以解决这个问题。
如下:
#include <iostream>
#define MAX 12
using namespace std;
int main()
{
int num[MAX];
int i;
for (i = 0; i < MAX; ++i)
{
num[i] = i;
cout << num[i] << " ";
}
cout << endl;
system("pause");
return 0;
}
宏定义实际上就是等效替换的意思,通过#define可以为数字12取一个MAX的别名,通过别名来替换掉12,因此在定义int类型的数组时时不会出现错误的。
注意:
通常情况下宏定义都会采用全大写字母来代替数字,虽然这不是语法规定,但是却是大家默认的写法
宏定义通常都是写在函数之外的,且宏定义的末尾不需要分号
宏定义不仅仅可以用于数组的定义,还常常用于代替经常出现的数字。如下:
#include <iostream>
#define NUMBER 12
int main()
{
int num1[NUMBER], num2[NUMBER];
int i;
for (i = 0; i < NUMBER; ++i)
{
num1[i] = i;
num2[i] = i + 1;
}
for (i = 0; i < NUMBER; ++i)
{
std::cout << num1[i] << " " << num2[i] << std::endl;
}
return 0;
}
在这种情况下,num1和num2两个数组的大小都是12,且在遍历数组的时候也是用12来遍历。此时使用NUMBER来代替12就非常方便,如果需要改变数组的大小就可以通过直接给改变NUMBER后面的数字来实现。