返回首页

C语言中-是什么意思啊?(2)

时间:2019-10-22 来源:原创/投稿/转载作者:管理员点击: 162

  使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。

  但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。

  链表最明显的好处就是,常规数组排列关联项目的方式可能不同于这些数据项目在记忆体或磁盘上顺序,数据的存取往往要在不同的排列顺序中转换。

  链表允许插入和移除表上任意位置上的节点,但是不允许随机存取。链表有很多种不同的类型:单向链表,双向链表以及循环链表。

  链表可以在多种编程语言中实现。像Lisp和Scheme这样的语言的内建数据类型中就包含了链表的存取和操作。

  展开全部-是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“-”.

  x = p-a;/*这句话的意思就是取出p所指向的结构体中包含的数据项a赋值给x*/

  对于一开始的问题 p = p-next;这应该出现在C语言的链表,这里的next应该是一个与p同类型的结构体指针,其定义格式应该是:

  链表指针是C语言的一个难点,但也是重点,学懂了非常有用。要仔细讲就必须先讲变量、指针。

  什么是变量?所谓变量,不要浅显的认为会变得量就是变量。套用我们院长的问话:“教室变不变?”变,因为每天有不同的人在里面上课,但又不变,因为教室始终在那,没有变大或变小。这就是变量:有一个不变的******和一块可变的存储空间。正常情况下,我们只看到变量这个房间里面的东西,也就是其内容,但不会关注变量的******,但是C语言的指针,就是这个房间的******。我们声明变量就相当于盖了间房子存放东西,我们可以直接观看房子里的东西,而声明指针,就是相当于获得了一个定位器,当用指针指向某个变量时,就是用指针给变量定位,以后我们就可以用指针找到他所“跟踪”的变量并可以获得里面的内容。

  那结构体呢?结构体就相当于是有好几个房子组成的别墅,几个房子绑定在一起使用。假设现在有很多这种别墅分布在一个大迷宫里,每间别墅里都有一间房子。里面放了另一个别墅的位置信息,现在你手拿定位器找到了第一栋别墅,从里面得到了你想要的东西(链表的数据部分),然后把下一栋别墅的位置计入你的定位器(p = p-next),再走向下一栋别墅……如此走下去,知道走到某地下一栋别墅信息没有了(p-next == NULL),你的旅行结束。这就是链表一次遍历的过程。现在你能明白 p=p-next的含义了吧!

【责任编辑:管理员】
随机推荐 更多>>