先上思维导图:
一、定义常量
代码如下:
#define MAX 10000 //定义常量MAX
#include <stdio.h>
int main()
{
printf("%d\n", MAX);
return 0;
}
打印结果就是10000,定义常量就是这么简单
二、定义宏
代码如下:
#define ADD(X,Y) X+Y
#include <stdio.h>
int main()
{
printf("%d\n", 4 * ADD(2, 3));
return 0;
}
如果是这样输出,结果是11,那么我们想得到的是20,为什么输出不是呢?因为这个代码计算的是4*2+3而不是4*(2+3),所以,我们要稍微修改一下代码,代码如下:
#define ADD(X,Y) ((X)+(Y)) //加额外的括号是为了使其广义化为表达式
#include <stdio.h>
int main()
{
printf("%d\n", 4 * ADD(2, 3));
return 0;
}
这样X和Y就广义化为了算式,这样就成功计算出了我们想要的结果,简单,好,next one
二、初识指针
首先,我们要明白:
(1)内存怎么编号?
(2)一个内存单元是多大空间?
首先明白:32位是32根地址线指的是物理线通电后能表示1/0
编号即是地址(一个内存单元大小是2的三十二次方bit,等于0.5G)
电信号转换成数字信息:1和0组成的二进制数列
内存是电脑上特别重要的存储器,计算机中所有程序的运行都是在内存中进行的。
所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。
代码:
#include <stdio.h>
int main()
{
int a = 10;
printf("%p\n", &a); //%p是打印地址
int* pa = &a;
char ch = 'f';
char* pc = &ch;
//&取地址*取值
//指针就是地址
return 0;
}
a在内存中要分配空间,大小为4个字节
其中pa是用来存放地址的,叫做指针变量
*说明pa是指针变量
int说明pa的执行对象是int类型的
于此同理char说明pc的执行对象是char类型
指针的大小是相同的
OK结束
相关代码我会放在我的码云上,欢迎交流与学习:C语言学习之路: C语言学习当中做的相关代码 - Gitee.com