咱们初识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.用- >结构体指针

 ——————————————————————————————————————————

到这里我们本章就讲完啦~  如有不妥之处  还望指正~~~

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐