c++析构相关-待看
来源:互联网 发布:qc数据库 编辑:程序博客网 时间:2024/05/29 17:15
原文:http://blog.csdn.net/jacketinsysu/article/details/52239982
delete[]的析构顺序
先说一个小发现,在delete []的时候,是按照与构造顺序相反的顺序来析构的!(原来的构造顺序指的是,new []的时候,是按照下标顺序构造的)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
上面代码的输出结果为:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
引用变量的大小
据说编译器内部是通过“常量指针”来实现引用的,首先从它的大小来看一下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
输出结果是:8 4
8是一个指针的大小!ps,不能直接通过sizeof(ref)来判断,因为这样会输出4 4
,计算的是ref所引用的对象的大小。
常量指针 VS 指针常量
下一个主题需要区分指针(类型的)常量和(指向)常量(的)指针,相信看了左边括号里的注释,应该都清楚了吧?
还不清楚,只能po我自己的私藏笔记了:
常量指针,顾名思义,就是指向一个常量的指针,比如:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
它的特点是,不能通过指针去修改所指向变量的值,常用于函数传参时声明变量内容不允许被修改(当然也可以用常引用)。
xx常量指的是这个变量是一个常量,不能修改其值,所以,“指针常量”指的就是这样的形式:
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
你可以修改原始变量的内容(只要它不是const修饰的),但是不能改变指针的值,也就是说,这个指针就只能被指定为指向这个变量了!
据说,编译器内部用常量指针来实现引用!(只是传言而已)
用指针常量来模拟引用!
直接po代码,代码清晰得,都不用解释的^_^
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
输出结果是:
0 0
- c++析构相关-待看
- 待看资源链接 APP相关
- 待看
- 待看
- 待看
- 待看!!!
- 待看
- 待看
- 待看
- 待看
- 待看
- 待看文章
- 收藏、待看文章
- 待看的书
- 待看动画
- 待看文档
- Android: 待看材料
- 技术名词待看
- Json对象与Json字符串互转(4种转换方式)
- hduoj-5444【二叉树构造】
- c与c++区别之this指针的巧妙应用
- 杭电 2044 一只小蜜蜂 斐波那契数列
- 杭电 1563 Find your present!
- c++析构相关-待看
- 二叉树之二BST树,AVL树详解及B树和红黑树原理分析
- linux 测试工具教程合集
- 软件工程作业二
- MySQL安装及卸载
- 自定义继承于Page的基类
- C#多线程
- 细说new与malloc的10点区别
- matlab数字图像/视频处理技术基础 第二篇