目录
1.前言
本文这次主要初步讲解指针和结构体的相关知识,后续还会详细讲解,因为指针是C语言的灵魂之 所在,其理解难度相对来说也比较大,但只要我们多想多看,会发现其实C语言理解起来也并不困难。💪
2.“快递员”—指针
内存:指针的理解基于内存之上,想要对指针有透彻的了解就必须先了解内存。
内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的。
所以为了有效的使用内存,就把内存划分成一个个小小的内存单元,每个内存单元的大小是1个字节。
同时为了能够有效的访问到内存中的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。
内存的管理
下面我们来创建一个变量,看看其如何在内存中存储的。
创建变量a: int a =10;
a的数据类型为int(整型),所占空间大小为4个字节,也就是占据四个内存单元,a变量的创建在内存中的分配如下:
&-取地址操作符
每个内存单元都有自己的地址,而相应的变量的创建也有自己专有的地址。
⭐:内存中的地址是递增的,&a-取出的是a所占四个字节空间的第一个字节的地址(地址小的那 一个字节)
例如下图,a的地址就是4,&a-取出的地址就是4
%p-用来打印地址
下面我们来打印一下a的地址,看看变量a的地址是多少:
我们看到变量a的地址在我的电脑上显示的是010FF78C ,下面我们来按下F10来调试验证一下:
验证正确。
⭐:地址前面的0X代表后边的数字为16进制数字。
指针变量:
⭐:指针变量的作用是用来存放变量的地址。
如果我们新创建一个浮点数类型变量,那我们应该这样写:
*-解引用操作符 / 间接访问操作符
下面我们来看一下解引用的作用。
我们知道每个内存单元都有一个编号,编号=地址=指针 ,那么存储一个内存单元的地址需要多大空间呢?,换句话说就是一个指针变量的大小占据多少空间?
下面我们来测试一下不同类型的指针变量的大小:
通过上图我们可以看到不同类型的指针变量的大小所占的空间内存大小都一样,都是四个字节。
那么为什么是四个字节呢?
🌙我们使用的有32位机器还有64位机器,32位机器有32根地址线,通电后能够产生高电平和低电平,32根数据线通电后能够产生2的32次方种结果,而每种结果由32位比特位组成,也就是四个字节,这就是为什么每个指针变量为什么是四个字节大小的原理。64位机器同理。
⭐:在32位环境下,指针的大小是四个字节。
在64位环境下,指针的大小是八个字节。
3.结构体
结构体的功能是用来描述复杂类型,例如描述一个学生,学生包括名字、年龄、性别、学号等。亦或者描述一本书,书包括书名、作者、出版社、定价、书号等等。
下面我们来创建一个描述学生信息的结构体:
.-结构体成员访问的操作符
格式:结构体变量.结构体成员
⭐:一个汉字占用两个字节的空间
->:结构体成员访问的操作符
4.结语
C语言的基础知识我们现在大致过了一遍,大家可以去看看我的前几篇博客,后续我还会详细的讲解C语言并且用C写一些小游戏,下篇我将会详细的讲解选择语句与循环语句,下篇我们不见不散💪💪。