小熊科技|C/C++编程笔记:「C语言指针」民间解读版本

相信很多同学在初学C语言时候 , 都会遇到遇到一个问题:指针 , 永远的神!
一说指针 , 第一反应 , 指针是一种数据类型 。
【小熊科技|C/C++编程笔记:「C语言指针」民间解读版本】c语言学习 , 重点就是两个 , 一个是数据的数据类型 , 一个就是程序的结构 。
整个C语言学习体系 , 在初学阶段就接触基本数据类型 , 整形实型字符型;然后是三大基本结构顺序循环分支 , 随后的内容几乎都是对数据类型的扩充结构体指针链表数组……
那么指针是一种什么类型的变量呢?什么情况下我需要定义一个指针 , 我要用这个指针存储什么样子的数据?
指针 , 用于保存某个单元的地址 , 你只要想存储某个单元的地址 , 你就需要定义一个指针 , 接着 , 你存一个地址的目的是什么?是要对一个单元进行间接访问 。
访问单元的方式就是两种:直接访问和间接访问 。
只要你在表达式使用了变量名 , 系统就会通过名字找到他所在的单元 , 找到做什么?或读或写 , 到底是读还是写 , 取决于变量名所在的位置 , 如果出现在赋值号左边 , 就是写入一个值 , 如果是打印到屏幕上 , 就是进行读 。
对于间接访问 , 先要定义一个指针 , 然后用这个指针指向你想要访问的单元 , 在指针变量名前面加一个*术语叫做间接运算符 , 可以把指针指向的内容表示出来 。
为什么要使用间接访问?使用变量名直接访问单元 , 它不香吗?为什么要引入间接访问 , 使用间接访问有好处吗?间接访问不是自己给自己找别扭吗?
不是!间接访问有非常重要的作用 , 主要体现在几个方面:
(2)使用间接访问为了动态分配存储单元 , 从而对单元进行操作 , 并且在此基础上实现链式存储结构 , 也就是链表.
(3)为了能够动态分配存储单元 , 并在此基础上实现动态数组 。 之前 , 定义变量 , 数组是静态数组获得10个存储空间 , 而数组一旦分配好存储空间 , 长度就不能变化 。 但是动态数组不一样 , 当满了以后可以扩充空间 。
(4)通过指针访问一段连续的存储空间