- 5
- 0
- 约6.13千字
- 约 21页
- 2019-05-11 发布于天津
- 举报
* 1.4 动态内存分配 1.4.1 new运算符 c语言中的动态内存分配和释放函数: int *p=(int *)malloc(sizeof(int)); free(p); 在堆空间中申请分配内存。希望能自己判断所申请的内存空间大小和应返回的指针类型,避免使用强制类型转换和sizeof运算符。 ¤语法:数据类型 *指针变量=new 数据类型 例如:char *pc=new char;//在堆空间创建char型无名对象,返回指向该对 //象的指针,对该对象的操作由指针来完成 分配的内存未初始化,可以在申请内存时进行初始化。 ¤语法:数据类型 *指针变量=new 数据类型(初值); 例如:int *p=new int(0); 可以为数组申请内存空间,长度可以不必是常量: ¤语法:数据类型 *指针变量=new 数据类型[长度]; 例如:int *pa=new[10]; // 数组元素不能进行初始化 int (*pa)[4]=new int[3][4]; 若内存分配失败,返回NULL指针。 1.4.2、delete运算符 释放由new运算符申请的内存空间 ¤语法:delete 指针变量; delete[] 指针变量;// 释放动态数组内存空间 例如:delete p; delete[] pa; 当无名对象占据的内存空间被释放时,该对象的生存期结束。 注意区分无名对象的生存期和指向该对象的指针的生存期。 例如: { char *p=new char[20]; strcpy(p,”hello”); delete [] p; …//此时p的值不变,p成为空悬指针,即指向无效内存的指针。最好在指//针指向的动态对象被释放后,将该指针设置为0,即p=0; 1.4.3 容易出现的错误 (1)内存泄漏 没有通过delete释放动态分配的内存单元 (2) 悬挂引用 int *p1=new int; int *p2=p1; delete p1;//多个指针指向同一对象 第2章 c++的函数 2.1 c++中的函数 2.1.1 函数原型 函数调用之前必须进行定义或者声明,说明函数的返回值类型、参数类型、个数。只有声明为void返回类型的函数可以省略return语句。缺省返回类型为int。若未声明函数参数,则认为参数表为空,无参数。无参函数应该在参数表中用void显式声明。 2.1.2 inline函数 从软件工程角度看,将程序实现为一组函数很有好处,但函数调用却会增加执行时的开销。 带参数的宏: #define S(a,b) a*b int main ( ) { double area,l,w; … area=S(l,w);// 编译预处理后成为area=l*w; area=S(l+3,w+5); // 编译预处理后成为area=l+3*w+5; 不进行类型检查,只是实参代替形参进行展开替换,易出现意想不到的错误;优点是不用入栈保护、传递参数,效率较高。 可以将函数定义为内联(inline)函数。对内联函数不进行编译。在调用内联函数时,经编译器检查无误后,将函数体展开在调用处。 ¤语法:在函数返回类型前加上inline关键字。 例如:inline double s(double a,double b) {return a*b;} int main( ) { … area=s(l,w); //编译时展开为area=l*w; 注意:①函数应该短小,一般只允许3~5行,一般不能使用循环语句,不能将递归函数定义为内联函数。 ②内联函数在调用前必须进行完整的定义。内联函数必须在调用该函数的每个文本文件中定义,通常内联函数的定义放在头文件中。 ③使用内联函数可以减少执行时间,但会增加程序长度。 2.1.3 函数的缺省参数 如果函数调用时某些实参值总相同,可以使用缺省参数。在函数的定义或声明的参数表中
您可能关注的文档
- 2019广西交通职业技术学院事业单位考试公共基础知识....pdf
- 2019级推荐生自主招生方案.pdf
- 2019长沙杯---全国吊装精英挑战赛项目二.pdf
- 21世纪俄罗斯左翼学者对.pdf
- 21世纪大国的人口实力较量.pdf
- 2函数的极值与导数教学设计.DOC
- 2动态视频信息的分析与检索.pdf
- 3、第16页第8行:的运行时间代价为OMAXfn,gn。4、....ppt
- 3年期股权连结参与债券无担保18-0.pdf
- 43名紧缺工作人员实施方案.pdf
- 14_sap_operations_manual_templateSAP实施模板系列.docx
- 05_sap_functional_specification_templateSAP实施模板系列.docx
- 19_sap_solution_design_framework_templateSAP实施模板系列.docx
- 珠江口盆地中北部中新统珠江组浪控三角洲沉积时空演化模拟_杨慧玲.pdf
- 北京市初二上学期期末测试卷.pdf
- 湖泊有机地球化学湖泊沉积物有机质来源和成岩作用指标综述.pdf
- 接受美学理论下的高中杜甫诗歌教学研究.pdf
- 金溪手摇狮融入小学音乐课堂的教学实践.pdf
- Z市D县电网安全的政企协同研究.pdf
- 高中生自我管理能力现状与对策研究——以南昌市某中学为例.pdf
原创力文档

文档评论(0)