指针知识点
来源:互联网 发布:工兵铲推荐 知乎 编辑:程序博客网 时间:2024/05/21 06:48
指针定义:指针是一个变量,保存的内容为地址。
int num = 5;
如果系统分配给num的空间为0x1000到0x1003 num的地址就为首字节地址0x1000。0x1000内保存的内容为5。
定义指针p
int* p = #
指针p内保存的内容为num的地址,如果系统给p分配的地址为0x2000,可以得到下图
指向内存空间和对应的内存空间:
num++:对num对应的内存空间的值加1.
p++:对p对应的内存空间的值加1.
(*p)++:对p指向的内存空间加1.
‘ * ’为取值运算符,根据对应内存空间里保存的地址找到其对应的内存空间。
p == &num
*p == num == *(&num)
int *pp = &p;
num == *p == **pp ==*(&num)
p == *pp == &num
int* ppp = &pp;
**ppp == *pp == p == &num
***ppp == **pp == *p == num =*(&num)
int *p; 定义为指针类型为int* 指向int
char *p; 定义为指针类型为char* 指向char
野指针:随机指向一块内存的指针,有可能导致内存泄漏。
内存泄漏:访问一块不可访问或已经释放的内存。
int *p;
scanf("%d",p);
printf("%d",*p);
这里虽然定义了指针,但是未对其进行初始化,系统对未初始化的局部变量分配一个随机的值,所以p指向一个随机的地址,而这个地址系统不一定分配给用户,用户不一定有使用权限,或者有使用权限但已经释放,如果使用此指针就有可能造成内存泄漏。
避免野指针需要给指针赋初值值
int * p = (int * )malloc(sizeof(int));
int * p = NULL;
- 指针知识点
- 指针知识点
- [C++]指针知识点小结
- 指针知识点的总结
- C 指针 基础知识点
- 【知识点】指针做形参
- 指针知识点总结
- C++ 指针知识点整理
- C语言指针知识点
- 指针相关知识点
- C++指针知识点整理
- 关于指针的知识点
- 指针的知识点
- C++知识点--指针
- 指针的基本知识点
- C语言指针相关知识点
- C/C++指针知识点汇总
- C++指针一个鲜见知识点
- poj 1236 Network of Schools
- UVALIVE 3954 Phone Cell <离散化 + 圆相交关系〉
- Android属性动画完全解析
- java中抽象类和接口修饰符
- Hashtable类源码解析
- 指针知识点
- 总结
- Phabricator快速搭建和使用
- 已知一对夫妇有两个孩子,如果知道有一个是男孩,那么两个都是男孩的概率?
- 【闲的蛋疼】深圳联通4G网络下,测试对比本地、香港、Los Angeles、San Francisco的连接速度
- eclipse neon安装svn4.0插件报错
- 通讯录
- HDU 5319 Painter(暴力枚举)
- Codeforces Round #282 (Div. 1) A. Treasure