对于LinkList L: L是指向定义的node结构体的指针,可以用->运算符来访问结构体成员,即L->elem,而(*L)就是个Node型的结构体了,可以用点运算符访问该结构体成员,即(*L).elem; 对于LinkList *L:L是指向定义的Node结构体指针的指针,所以(*L)是指向No ...
分类:
其他好文 时间:
2018-09-22 12:59:35
阅读次数:
191
注:玩的是JDK1.7版本 一:先上类的继承结构图 二:再看一下他的底层实现数据结构 三:然后从源码中找点好玩的东西 1)双向链表的结构构成元素,头指针、尾指针、节点信息(前向指针、后向指针、节点信息) 2)在链表尾部添加新节点,只需要改变链表尾指针的指针指向就可了,所以,性能相对 ArrayLis ...
分类:
编程语言 时间:
2018-09-11 21:08:27
阅读次数:
235
一个二叉排序树的例子 首先看一个常见的二叉排序树的操作,下面的代码包括插入、创建和中序遍历。摘自 "这里" 。 我一直很纳闷为什么插入(创建)操作需要传递指针的指针,不是指针就可以操作被指向的内容吗?为解决这个疑惑,首先看一下C语言的函数传参。 C语言函数传参 一个经典的例子就是交换两个数的值, , ...
分类:
其他好文 时间:
2018-09-09 14:59:21
阅读次数:
523
对于这个形式,我想过为什么不能够使用 *p 作为形参呢。下面我们看一下代码和执行结果 由这个结果可以看出一开始ptr初始化为NULL,后面经过get()函数以后ptr的指针为00511448,包括后面的函数退 出以后ptr的值也是00511448 。但是下面指传入指针的结果相比较,我们就可以发现问题 ...
分类:
编程语言 时间:
2018-08-17 22:21:46
阅读次数:
124
4-1.c多维数组的定义 上例子为(a) 结果(a): 对(a)进行修改:数组 int data[2][3]; 只定义不赋值。 结果(b): 对(a)进行修改:数组 int data[2][3]={{1,2,3}}; 结果(c): 对(a)进行修改: printf(" %d",&data[i][j] ...
分类:
其他好文 时间:
2018-07-28 17:20:09
阅读次数:
114
指针的指针 我们都知道,在C语言中声明一个变量,可以用同类型的指针指向原先那个变量,指针保存的就是前一个变量的地址: 它们如下图进行内存分配: 假定我们又声明了第三个变量叫c,并用c = &b对变量c进行初始化,那么它们在内存中的关系大致如下: 那么问题来了,c的类型是什么?我们都知道,能保存一个地 ...
分类:
其他好文 时间:
2018-07-13 22:14:50
阅读次数:
207
1 //用指向指针的指针输出若干字符串 2 #include 3 int main(){ 4 char *name[]={"Basic","Visual Basic","C","Visual C++","Pascal","Delphi"}; 5 char **p; 6 p=name; 7 for(i... ...
分类:
编程语言 时间:
2018-06-28 12:15:16
阅读次数:
175
1.知识点 (1)在程序中可以声明指向任何数据类型的指针,指针也可以指向指针类型,成为指向指针的指针。下面是一个使用例子 (2)如果想通过指针在被调函数中修改主调函数的变量,必须将主调函变量(务必确定该变量的类型,有时候可能变量本身就是指针,这时候形参就需要是指针的指针了)的地址作为参数,在被调函数 ...
分类:
其他好文 时间:
2018-06-20 00:10:46
阅读次数:
140
1.知识点 1.1指针数组——存放指针的数组 (1)指针数组本质上是一个数组,指针是数组中的内容,表示数组中的每个元素都是指针,因此指针数组就是存放指针的数组。下面是指针数组的用法: (2)指针数组的定义可以抽象为:指向变量类型 * 数组名称[数组长度]。 (3)[]的优先级高于*,所以[]与p先结 ...
分类:
编程语言 时间:
2018-06-18 17:18:32
阅读次数:
179