欢迎来到天天文库
浏览记录
ID:45085774
大小:661.00 KB
页数:85页
时间:2019-11-09
《《C与C语言的不同》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第2章C++与C语言的不同2.1C++语言的输入和输出2.2注解2.3动态存储分配和释放存储空间2.4内联函数2.5const说明符2.6函数原形2.7缺省参数2.8引用2.9枚举名,结构名和联合名都是类型名2.10C++语言的类型2.11类型转换2.14函数体内定义变量的位置8/17/20212.1C++语言的输入和输出C++语言的输入和输出的方法。(1)使用C语言的外部函数(如printf,scanf等),要包含头文件"stdio.h"(2)C++语言还提供自己的输入输出方式。是通过">>"和"<<"实现。C++编程包含
2、输入输出头文件"iostream.h"输入格式为:cin>>变量8/17/2021在输出表达式时,为避免二义性表达式最好加括号下列程序程序显示一行字符串:#includevoidmain(){cout<<"Hello,World";}输出格式为:Hello,WorldC++输入输出头文件8/17/2021例2-1键入一个代表英寸的整数,将打印相应厘米数.#includevoidmain(){intinch=0;cout<<"inches=";cin>>inch;cout<3、ch;cout<<"inches=";cout<>num>>pstr;如果输入:120chengdu则num为120,而pstr仅指向字符串cheng,而不是chengdu。对于输入符号">>",如果需要连续输入多个数据,那么可以有以下两种方法:1)每4、行只输入一个数据,以换行符结束一个数据的输入。2)一行输入多个数据,以空格符作为一个数据的输入结束标记;以换行符结束一行数据的输入。8/17/20212.2注解该注解以"//"开始,到行末结束。只能注解单行可以镶嵌。unm++;//incrementnumC的注解风格:unm++;/*incrementnum*/使用"/*"开始,直到"*/结束,可以注解但不许镶嵌。新的注解方法:8/17/20212.3动态存储分配和释放存储空间2.3.1new和delete比如要分配100个整型数的存储空间,将起始地址赋给指针变量pint*5、p;p=(int*)malloc(sizeof(int));free(p);在c语言是利用malloc和free函数完成的。函数原形为:void*malloc(size_tsize);//malloc.hvoid*calloc(intn,size_tsize);//malloc.hvoidfree(void*p);8/17/2021C++的运算符new和delete提供了动态存储分配和释放存储空间的功能。优点:1)new自动计算要分配类型的大小,而不给出要分配的存储区的大小,这比较方便,也可以避免偶然地分配错误存储量。2)它6、自动返回正确的指针类型,不必对返回指针进行强制类型转换。3)可以用new将分配的存储空间进行初始化。8/17/2021运算符new用于内存分配的使用形式为type*p;p=newtype;其中,type是一个数据类名;p是指向该数据类型的指针;new从称为堆的一块空闲内存区中为程序分配一块内存,其大小与type类型的数据一样,该地址被存于指针p中。如果分配失败,new返回一个空指针。8/17/2021运算符delete释放new分配的存储空间,将其交还给堆。它的使用形式一般为deletep:其中p是一个指针,保存着new分配7、的内存的首地址。type可以是任何类型,包括函数指针,但不允许函数类型。当type为数组类型时,new返回的指针指向数组的第一个元素,当用new创建多维数时,必须提供所有维的大小。8/17/2021动态分配管理的方法要求delete的操作数必须是一个new返回的指针,对不是new得到的任何其它地址类型,使用delete将产生严重错误。8/17/20212.3.2new和delete典型用法1.动态分配和释放单个数据的存储区语法为type*p;p=newtype;…deletep;通过*p的方式访问new申请的空间。看下面的例8、子:8/17/2021该程序把一存储区地址赋给p,该存储区足够容纳一个整数。然后把值20赋给该存储区,并把其内容显示在屏幕上。最后,释放该动态分配的存储区。#includeintmain(){int*p;p=newint;if(!p){cout<<"allocati
3、ch;cout<<"inches=";cout<>num>>pstr;如果输入:120chengdu则num为120,而pstr仅指向字符串cheng,而不是chengdu。对于输入符号">>",如果需要连续输入多个数据,那么可以有以下两种方法:1)每
4、行只输入一个数据,以换行符结束一个数据的输入。2)一行输入多个数据,以空格符作为一个数据的输入结束标记;以换行符结束一行数据的输入。8/17/20212.2注解该注解以"//"开始,到行末结束。只能注解单行可以镶嵌。unm++;//incrementnumC的注解风格:unm++;/*incrementnum*/使用"/*"开始,直到"*/结束,可以注解但不许镶嵌。新的注解方法:8/17/20212.3动态存储分配和释放存储空间2.3.1new和delete比如要分配100个整型数的存储空间,将起始地址赋给指针变量pint*
5、p;p=(int*)malloc(sizeof(int));free(p);在c语言是利用malloc和free函数完成的。函数原形为:void*malloc(size_tsize);//malloc.hvoid*calloc(intn,size_tsize);//malloc.hvoidfree(void*p);8/17/2021C++的运算符new和delete提供了动态存储分配和释放存储空间的功能。优点:1)new自动计算要分配类型的大小,而不给出要分配的存储区的大小,这比较方便,也可以避免偶然地分配错误存储量。2)它
6、自动返回正确的指针类型,不必对返回指针进行强制类型转换。3)可以用new将分配的存储空间进行初始化。8/17/2021运算符new用于内存分配的使用形式为type*p;p=newtype;其中,type是一个数据类名;p是指向该数据类型的指针;new从称为堆的一块空闲内存区中为程序分配一块内存,其大小与type类型的数据一样,该地址被存于指针p中。如果分配失败,new返回一个空指针。8/17/2021运算符delete释放new分配的存储空间,将其交还给堆。它的使用形式一般为deletep:其中p是一个指针,保存着new分配
7、的内存的首地址。type可以是任何类型,包括函数指针,但不允许函数类型。当type为数组类型时,new返回的指针指向数组的第一个元素,当用new创建多维数时,必须提供所有维的大小。8/17/2021动态分配管理的方法要求delete的操作数必须是一个new返回的指针,对不是new得到的任何其它地址类型,使用delete将产生严重错误。8/17/20212.3.2new和delete典型用法1.动态分配和释放单个数据的存储区语法为type*p;p=newtype;…deletep;通过*p的方式访问new申请的空间。看下面的例
8、子:8/17/2021该程序把一存储区地址赋给p,该存储区足够容纳一个整数。然后把值20赋给该存储区,并把其内容显示在屏幕上。最后,释放该动态分配的存储区。#includeintmain(){int*p;p=newint;if(!p){cout<<"allocati
此文档下载收益归作者所有