C++的基础知识(七)--符号->
2017-10-07 14:37
232 查看
->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”。
struct Data { int a,b,c; };/*定义结构体*/ struct Data * p;/*定义结构体指针*/ struct Data A = {1,2,3};/*声明变量A*/ int x; /*声明一个变量x*/ p = &A ; /*让p指向A*/ x = p->a;/*取出p所指向的结构体中包含的数据项a赋值给x*/ /*由于此时p指向A,因而 p->a == A.a,也就是1*/
p = p->next;这应该出现在C语言的链表,这里的next应该是一个与p同类型的结构体指针,其定义格式应该是:
struct Data { int a; struct Data * next; };/*定义结构体*/ main() { struct Data * p;/*声明指针变量p*/ …… p = p->next;/*将next中的值赋给p*/ }
假如链表为p1-p2-p3-....... p1->next=p1,那么链表就断了,p2,p3会找不到了,链表变成了p1--| |-----| 也就是它自己指向自己了。 p->next=p表示节点p的下一个节点还是p,如果链表只有p节点,那么这样就变成了一个循环链表,p=p->next表示修改指针p的位置,把p指向原来的下一个节点。 这里有一个连如下: ......->[0000]->[1111]->[2222]->[3333]->........ | p 开始时p指向节点[0000],那么p->next指向的是节点[1111],如果执行语句p->next=p,实际上就是修改了指针p->next的位置,p没有变,链表变成了:......->[0000]->| p
相关文章推荐
- <转>C++基础知识: 引用
- C++ 学习笔记 <1> C++ 语法基础知识
- C/C++基础知识总结<一>
- [C++STDLib基础]关于C++string字符串的操作——C++标准库头文件<string>
- java 框架基础知识(4)----XML基础知识-->Spring配置
- C++基础知识
- C++基础——bitset与vector<bool>
- c++基础知识
- java 框架基础知识(7)----事务基础知识-->Spring事务管理
- C++中数组的基础知识
- C++的基础知识(十一)--数组做函数参数、数组名a与&a区别、数组名a的"数据类型"
- 面试篇之~ c++ 基础知识简单总结 (一)
- C++基础知识 day2
- C++入门基础知识
- 【PHP】PHP基础知识与C++、Java等C家族的重点区别
- C++基础知识
- 感觉还有好多的C++基础知识要去学习
- Linux-->基础知识-->useradd命令详解
- C++中函数的基础知识
- <Redis>基础知识和命令