数据结构与算法分析 c++描述 读书笔记(2)
来源:互联网 发布:想转行java 编辑:程序博客网 时间:2024/05/12 11:13
int main( ){IntCell *m;m = new IntCell(10);cout << m->read() << endl;delete m; return 0;}
使用之前的IntCell类。
1. 使用未初始化的指针通常会破坏程序,因为这样的指针可能会访问不存在的存储地址。解决办法是定义指针和初始化放到一起。
2. 在定义m指针时,可以选择m= new IntCell();但是考虑到可能会出现编译器误认为IntCell是函数的情况,所以一般还是按照上边代码段里的形式编写。
三种参数传递机制的选择:
double avg(const vector<int> & arr, int n, bool & errorFlag)
这里的arr使用的是按常量引用调用来传递,n是按值调用来传递,errorFlag是使用引址调用来传递。
参数传递机制的选用可以通过以下两步的判断来决定:
1. 如果参数必须能够改变实参的值,那么就必须使用引址调用。
2.当实参的值不能被形参改变,如果参数类型是简单类型,使用按值调用。否则,一般按常量引用调用来传递(否则复制消耗巨大)。
参数传递选项总结如下:
1.按值调用适用于不被函数更改的小对象。
2.按常量引用调用适用于不被函数更改的大对象。
3.引址调用适用于所有可以被函数更改的对象。
PS:
值传递:传递过程中,将变量的值拷贝一个副本,用这个副本值来对新变量完成初始化;
传递结果:两个变量的值相同,但互相独立。
引用传递:传递过程中,只传递原变量的指针副本,新变量接受这个指针副本;
传递结果:两个变量指向同一个对象。
由以上可知:值传递与引用传递最大的区别在于:传递过程中是否发生了对象的拷贝
PS:
对于:
int* const a = &b;
和 const int* a = &b;
如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的 右侧,const就是修饰指针本身,即指针本身是常量。
0 0
- 数据结构与算法分析 c++描述 读书笔记(2)
- 《数据结构与算法分析:c语言描述》读书笔记
- 数据结构与算法分析(C语言描述)—— 读书笔记
- 数据结构与算法分析 c++描述 读书笔记(1)
- 《数据结构与算法分析 C语言描述》读书笔记——分治算法
- 数据结构与算法分析(C语言描述)L1.1
- 《数据结构和算法分析---C语言描述》读书笔记
- 《数据结构和算法分析—C语言描述》读书笔记
- 读书笔记:数据结构与算法分析(Java语言描述)——数据结构概论
- 数据结构与算法分析:C语言描述(原书第2版) PDF
- 读书笔记:数据结构与算法分析(java语言描述)——引论
- 数据结构(C语言)读书笔记2:算法与算法分析概述
- 数据结构与算法c#语言描述读书笔记
- 《数据结构与算法分析-C语言描述》笔记
- 《数据结构与算法分析--c语言描述》之第一章:引论
- 数据结构与算法分析-C语言描述 重点笔记
- 数据结构与算法分析:C语言描述(pdf+源码+答案)
- 数据结构与算法分析 C语言描述 单链表的实现
- 常用报表开发工具介绍
- scala基础与实践中
- android颜色半透明
- 用堆排序实现查找最小的K个元素 java
- 【android】RadioGroup+RadioButton+HorizontalScrollview实现顶部横向菜单栏
- 数据结构与算法分析 c++描述 读书笔记(2)
- Python的range函数
- leetcode-153. Find Minimum in Rotated Sorted Array
- c实现base64
- 组成原理复习笔记之(01)概论
- UVa 10935 Throwing cards away I
- 安装Python和认识Python---Python学习笔记一
- 多态的表现特点
- 五一欢乐赛——二进制中‘1’的个数