c++指针再探究
来源:互联网 发布:知柏地黄丸与难入睡 编辑:程序博客网 时间:2024/04/30 14:33
c++中对指针又有了一定的扩展,特别是c11中又对智能指针进行了一些定义修改,所以在这里向重新复习下c++中的指针,便于加深对c和c++两者之间指针不同的一些理解。
1:
int *pt=new int;
pt是指针。*pt不是指针,而是完全等同于一个int类型的变量。
2:
对指针解除引用:对指针解除引用意味着取指针指向地址的值。有两种方法来对指针解除引用。一是用间接运算符(*),二是用数组表示法。绝对不能对未初始化为适当地址的指针解除引用。
3:
数组的动态联编和静态联编。
使用数组声明来创建数组时,将采用静态联编,即数组在创建时设定了长度:int a[10];
使用new[]来创建数组,将采用动态联编,即将在运行时为数组分配空间。数组长度也将在运行时确定。使用完数组以后,使用delete[]来释放空间。
4:
对于.和->的使用区别。如果结构标示符是结构名,则使用句点运算符;如果标示符是指向结构的指针,则使用箭头运算符.
5:
自动存储,静态存储,动态存储。
在函数内部定义的变量使用自动存储空间。函数执行时自动产生,函数执行完毕自动消亡。自动变量通常存储在栈中。当执行代码块时,变量依次载入到栈中。当代码块执行完毕后,变量按照相反的顺序出栈。这称为先进后出。
静态存储指在整个程序运行过程中都存在的存储方式。有两种使用方式。一种是在函数外申明。一种是在声明变量的时使用static关键字。
动态存储是用new和delete运算符来操作的更为灵活的方式。它们管理一个内存池,在c++中称为自由空间或者堆。这个内存池中关于静态变量和动态变量的存储空间是分开的。由于使用new和delete来操作,变量的生命周期不完全收函数或程序的生存时间控制。动态存储可以让程序员更自由的操作,但同时也加大了对内存管理的难度。在栈中,自动添加和删除机制使得内存使用总是连续的,但new和delete的操作导致占用的内存存储区不连续。
未完,后有新的笔记将上传
- 探究c的指针
- c++指针再探究
- 指针的再探究
- c primer plus 指针与多维数组探究
- JAVA引用和C语言指针的探究
- 指针数组探究
- 指针数组探究
- 指针引发的探究
- 指针出参探究
- 野指针深入探究
- C语言一个小小的问题引起的对指针的探究。。。
- c++探究(三)指针
- extern "C" 探究
- C 表达式未定义探究
- C语言库函数探究
- 黑马程序员—C学习笔记—结构体变量五种定义方式与指针结构体数组探究
- 批判,再批判!关于“探究:如何判断Delphi中的对象指针是否可用”!
- m_spHtmlDoc 探究 及 智能指针CComPtr
- HOSTS登陆github&google sdk下载 2015 3.30
- Hadoop 格式化namenode错误:FATAL namenode.NameNode: Exception innamenode join
- Android 点击桌面快捷方式和Notifycation跳转到Task栈顶Activity
- hdoj.1285 确定比赛名次【拓扑排序】 2015/03/30
- 用latex生成pdf文件后,文本复制粘贴显示乱码
- c++指针再探究
- 校内网限制内网访问博客等解决办法
- 基于 K-means 和 PCA 的字典学习
- TO 圈姐
- Java中Properties类的操作
- 在Mifare S50中,如果第2区的访问控制码为FF 08 70 69,则该区块1和区块3的访问控制条件是什么?
- 混合图的欧拉回路(通路)判定
- HashMap源码阅读(1)- 初始值、数据结构、hash计算、2的n次幂
- Android Volley完全解析(二),使用Volley加载网络图片