赞
踩
&
符是一个标识符,告诉计算机变量是引用变量,在如下示例,则表示 a
和 b
会指向同一位置(地址),相当于给 a
起了一个别名:
int a = 10;
int &b = a;
当输出 &a
的时候,相当于取出 a
的地址:
cout << &a;
输出:
0x...
内存: 由很多个字节组成
字节: 计算机存储数据的计量单位
地址: 在内存中每个存储单元(字节)被赋予的唯一序号
数据类型 | 所占内存 |
---|---|
bool | 占 1 1 1 字节 |
int | 占 4 4 4 字节 |
double / long long | 占 8 8 8 字节 |
存放地址 所用的 变量 类型叫做指针变量,简称指针。
&
符是一个标识符,告诉计算机变量是指针变量,例如下面的代码:
int x = 100;
int *y = &x; // 将(x的地址)放入(指针y)中
&
符也可以是一个运算符,将对应的数值取出。
cout << *y;
输出:
100
int x = 100;
int *y = &x;
*y = 50; // 获得了(x的地址),直接更改x的数值
链表是一种通过指针串联在一起的线性结构,每个数据存在一个结点。
每一个结点由两部分组成,一个是 数据域 ,一个是 指针域 ,用来存放 指向下一个结点 的指针(下一个结点的地址)。
最后一个结点的指针指向空(NULL
)。
单向链表只有一个方向,结点只有一个 直接后续指针next 指向下一个结点尾结点指向 NULL
。
将 p
插入在 a
与 b
之间:
// 下面程序两行代码互换也可以
a->next = p;
p->next = b;
将 p
插入在 a
后面:
// 固定格式
p->next = a->next;
a->next = p;
如果知道 p
在 a
和 b
中间:
a->next = p->next;
但是如果不知道 p
前面的结点名字,就 无法删除p结点。
双向链表有两个方向
有一个 直接后继指针next 指向后一个结点
有一个 直接前驱指针prev 指向前一个结点
将 p
插入在 a
与 b
之间:
b->prev = q;
q->next = b;
a->next = q;
q->prev = a;
将 q
插入在 p
之前:
q->next = p;
q->prev = p->prev;
p->prev->next = q;
p->prev = q;
p->prev->next = p->next;
p->next->prev = p->prev;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。