目录
一、什么是指针
1.1内存
1.2指针变量的大小
二、什么是结构体
一、什么是指针
1.1内存
认识指针前首先要了解电脑内存的含义,而什么是内存呢?
内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。 所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。 为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。
指针,是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分。指针也就是内存地址,指针变量是用来存放内存地址的变量,在同一CPU构架下,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储数据的变量地址进行操作。二、什么是结构体
指针描述了数据在内存中的位置,标示了一个占据存储空间的实体,在这一段空间起始位置的相对距离值。在 C/C++语言中,指针一般被认为是指针变量,指针变量的内容存储的是其指向的对象的首地址,指向的对象可以是变量(指针变量也是变量),数组,函数等占据存储空间的实体。
变量是创建内存中的(在内存中分配空间的),每个内存单元都有地址,所以变量也是有地址的。 那怎么取出变量地址呢?代码如下图:
如图所示,取得的地址为“0115FE80”,地址最前面的0表示八进制输出。
那地址如何存储,需要定义指针变量
指针如何使用呢,现在举例说明
p存储了a的地址,*p就相当于a了,改变*p就是改变a。p存储的a是什么类型,*前面就写什么类型,由此可推广到char、float、double等。
1.2指针变量的大小
指针变量的大小取决于地址的大小 ,32位平台下地址是32个bit位(即4个字节) ,64位平台下地址是64个bit位(即8个字节),代码如图:
因为我是32位平台 ,所以都是4.
二、什么是结构体
结构体是由一批数据组合而成的结构型数据。组成结构型数据的每个数据称为结构型数据的“成员” ,其描述了一块内存区间的大小及解释意义
结构体是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型。
结构体的应用,可以描述学生的姓名+学号+年龄+性别等信息。



