书接上回————#define定义常量和宏 & 指针 & 结构体
咱们初识C语言这一章还剩最后三个板块
一.#define定义常量和宏
二.指针
三.结构体
咱们一个一个来~
———————————————————————————————————————————
一.#define定义常量和宏
1.#define定义常量
这个我们在前几章讲解常量时就已经介绍过,咱们再来一起回顾一下

由图我们可以看到用define来定义的MAX和STR,这两个“变量” 成为了10000和“hello word”的替身,也就是说MAX可以当成10000这个常量来使用(此时的MAX已经是一个彻彻底底的常量了)
STR变成了”hello word“的替身,无法再对MAX和STR再做出修改

机制如下~~

ji
(要注意#define定义常量的格式,没有分号)
2.#define定义宏(适用于对简单问题的解决)
例如我们想写一个函数来比较两个数的较大值
int get_max(int x, int y)
{
//int z = (x > y ? x : y);
//return z;
return (x > y ? x : y); // 可直接返回较大值
}
int main()
{
int a = 10;
int b = 20;
int c = get_max(a, b);
printf("较大值是:%d\n", c);
return 0;
}
这是用函数的形式来解决这个问题,那么我们又如何运用宏来解决呢?如下~

机制如下~

从本质上来说也同样是使用替身,将MAX当作三目操作符(x>y? x: y)的替身,当把a,b两个参数赋给MAX时,MAX会做为参数于三目操作符的桥梁,将a,b传给操作符来进行内部运算
——————————————————————————————————————————
我们这就来到了我们的重头戏——指针
指针并没有大家想的那么玄乎,也不难理解,现在我就用二年级表弟都能听懂的表述来带大家认识指针~
我们不妨想象一下
你自己造了一家酒店想赚钱,这家酒店你已经建好了,酒店里有许许多多的客房(开辟内存空间),每个客房你都设置好了编号,什么三楼308,四楼405的编号贴在门牌上(设置地址),你想想你为什么要设置客房编号?不就是为了能让客人很好的找到他所下单的客房吗? 不仅能为了很好的找到客房,当有一天你不想让你的酒店的客房这样排版的时候,你完全可以把306客房的门牌号拆下来换成305这门牌号。
而我们所说的指针就是门牌号,某个房间的地址,就是一个很普普通通的数字,就是为了能让客人找到房间,并在未来能对他做出修改。
简单知道了什么是指针后,我们来了解其相关概念
1.一个内存单元是多大?
一个内存单元是一个字节
2.内存单元的编号如何产生?
在我们32位平台的电脑,电脑链接了32根数据线,当我们电脑通电的时候,这32根数据线会产生电信号(二进制序列,分别会产生32个0到32个1这么多的二进制序列,这些序列就是每个内存空间的编号,即2的32次方这么多的序列,他们会转成十六进制的编号给每个内存空间),但是要注意这些编号不是每个都会储存起来,而是当你设置变量,开辟空间的时候,才会对你所开辟的空间赋予编号,而这些编号就是内存单元的地址,也就是我们所说的房间门牌号,也就是我们所说的指针~



上述图解释了我们可以用指针变量来存放地址,用*解引用操作符来找到指针变量指向的内容并对其做出修改,还解释了指针变量的大小
讲到这里,我们对指针在心里也有了一个谱,之后关于指针的详细内容都是从这衍生出去的,之后我们详讲的时候再做介绍
———————————————————————————————————————————
终于到我们本章的最后一个板块了——-结构体
1.结构体就是把多个分散的组合类型结合起来描述一个整体。
例如我们想创建一个学生,那我们如何来创建学生这个变量呢?方法如下~

一个学生需要有名字,年龄,性别,和学号,当我们如上图建立好数据后,这样我们就很好的创建好了学生这个变量

对结构成员访问也有不同的方法
1.用.结构成员访问符
2.用- >结构体指针

——————————————————————————————————————————
到这里我们本章就讲完啦~ 如有不妥之处 还望指正~~~
更多推荐
所有评论(0)