目录
#define 定义常量和宏
#define 定义常量
在变量和常量2,#define 定义的标识符常量中,就了解到#define可以定义常量。
定义一个符号叫做NUM,这里我们可以给它赋值,可以直接打印它的值,也可以创建一个数组,数组的大小用NUM(此时NUM是一个常量)。
#define NUM 100
int main()
{
printf("%d\n", NUM);
int n = NUM;
printf("%d\n", n);
int arr[NUM] = { 0 };
return 0;
}
运行证明,无论是直接打印,还是用NUM 创建一个数组都是没有问题的。
#define 定义宏
宏是有参数的
之前求两个数之和的时候,我们写了一个函数来求,这里我们写个宏来求两数之和。
#define ADD(x,y) ((x)+(y)) 定义一个宏叫做ADD,
ADD是宏名,(x,y)是宏的参数,参数是无类型的,((x)+(y)) 是宏体。
int Add(int x,int y) 这是函数的写法
{
return x + y;
}
#define ADD(x,y) ((x)+(y))
int main()
{
int a = 10;
int b = 20;
int c = ADD(a, b);
printf("%d\n", c);
return 0;
}
运行得到结果30,成功完成两数加和的任务。
宏和函数非常相似,但宏是宏,函数是函数,这里还是见识一下就可以了。
指针
内存
在说指针之前,不得不先说一下内存.
内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。
这个我们在register-寄存器中就提到过。
control+alt+delete打开任务管理器,就能看到内存的使用情况,每一个程序都占有内存,都在使用内存,那这些程序是怎么使用的呢?首先要加载到内存里面去。
当我们买电脑时说8G/16G,那这8G/16G不可能直接使用吧,所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。
这一个个小的内存单元就像生活中一个个房间一样,每个房间都有一个地址。