记得是大一下学期开始接触C,在此之前真是一点都不懂呀。这几年在断断续续的学习和使用C的编程,对它还是有了一点感觉。个人觉得很多教科书上把数组与指针分开介绍的做法不妥,因为这样很容易让初学者误认为两者是独立分开的,其实不然。可以说没有指针就没有数组。这里只是浅显的介绍自己的一点理解,并不涉及很深的专业知识点,望见谅。小编毕竟知识有限,不足之处,望批评指正。
工具/原料
1
电脑
2
C语言编程环境
认识1
1
首先想必大家都已经知道了数组、指针最基本的概念了吧。不知道,也没关系,我在这里稍微提一下啦。数组是C语言中一种复合数据类型,是相同数据类型的一个集合。其声明或者定义的形式为a[ i ]。其中a是数组名,i是数组维度,都有明确的用途。
2
对于指针的记忆,每一个初学者都是头疼脑袋大吧。哈哈,其实只要你仔细想想还是蛮简单的。指针其实也是一个对象,有它的物理地址,物理地址里面存放着它的值。但是特殊之处在于其物理地址存储的值恰巧是其他对象的物理地址。清楚了这一点,后面就好理解啦。
认识2
1
现在就像大家介绍一下,我个人对数组与指针联系的认识。可以这样说,没有指针就没有数组。对于一维数组,我们很清楚它的物理意义。可以把它理解成行连续排列的单元,每个单元里面存储一个数据值。可以通过for循环把数据一个一个的读入与写出。那它和指针有什么关系呢?是这样的,比如说你可以把它看成指针P从左往右一个一个地搜索然后写出的。
2
对于二维数组,我们也是很自然的把它理解成按行和列组成的数据块。一个简单的数组A[2][6],两行六列,很简单。但是你可以把他理解成指针P的有规律的跳跃指向每个数据单元。就是说,它是由两部分构成的,一部分是第一行指针A[0],另一部分是第二行指针A[1]。现在差不多就有点明白了指针的这种跳跃机制很方便的就构造了不同维度的数组了吧。
3
那好,我们来看三维数组A[2][2][3],你能想象它的物理形式吗,有点难度了吧。但是通过指针的这种跳跃,也是很容易实现的。
4
有一点大家主要到了吧,数组的名字其实代表的是它的的一地个元素的地址(即首地址)。这一点很重要,比如一个二维数组A[2][3],其中A[1],就是其第二行的首地址。
注意事项
1
学习时数组指针相互联系、不可分割。
2
谢谢大家多多支持,点个赞吧。
上一篇:e300l后视镜三角警示怎么设置