2.3C++对运算符的扩充.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.3C++对运算符的扩充.ppt

2.3 C++对运算符的扩充 main() { int a[n],i,n; float sum=0,average; cinn; for(i=0;in;i++) cina[i]; for(i=0;in;i++) sum=sum+a[i]; average=sum/n; coutaverageendl; } 该分析程序!!! C/C++语言都是编译性的语言,要求程序的变量必须事先声明,以便在编译的过程中为每一个变量分配相应的内存空间。变量在程序运行期间不能增加也不能减少,这在许多的应用中很不方便。 C++语言的动态内存分配机制为克服这种不便提供了手段。所谓动态分配内存是指在程序运行的过程中,为程序分配大小不可预知的内存空间。 动态内存分配需要用到指针,new运算符和 Delete运算符。 New运算符 动态内存分配需要用到指针和 new 运算符,其一般形式为: pointer = new type; 若系统成功地为请求分配了内存,则指针 pointer 的值将是系统为程序所分配之内存的首地址;否则为一空指针。此时内存是随即值,系统不对其初始化。 例如: int *p; p = new int; 使用New 运算符动态申请内存空间时,可以为其指定初值。其形式是: pointer = new type(初始值); 例如: int *p; p = new int(5); Delete 运算符 当程序不再使用动态内存时(包括程序退出之前)必须用delete 运算符将动态内存返还给系统。其一般形式为: delete point; #include iostream.h Void main() { int *p; p=new int(5); if(p==0) { cout“memory allocation failture!!”endl; exit(1); } *p=*p+2; cout“the value of p is:”pendl; delete p; } 由于 C++ 语言的变量说明非常灵活,所以为单个变量申请动态内存的实用价值不大,通常都是为一个数组申请一块动态内存(称为动态数组)。申请动态数组的一般形式为: pointer = new type[c1][c2][c3]…; 其中:各 ci 均为整型常量。 int *p; p = new int[5]; #include Iostream.h main() { int *p, i, n; float sum=0,average; cinn; p=new int[n]; for(i=0;in;i++) cinp[i]; for(i=0;in;i++) sum=sum+p[i]; average=sum/n; coutaverageendl; delete [n]p; } 注意: 不允许为动态分配的内存指定初始值 int *pi; pi=new int[5]={1,2,3,4,5} 当内存分配成功后,一般不允许修改指针变量的值,否则在执行的后果不可预知。 int *p=new int[10]; p=p+2; delete [10]p; New运算符和delete运算符小节 2.4 C++对数据类型的扩充 引用类型 引用就是别名。当建立引用时,必须用一个已经定义的变量或者对象的名字来定义它。在引用被定义后,引用就作为原变量或者对象的别名来使用,对引用的改动就是对原目标的改动。 引用类型的定义 定义格式: type ref_name = var; 类型 引用名 = 已定义的变量名 例如: int i = 5; int ri = i; #include Iostream.h void main() { int n=

文档评论(0)

suijiazhuang1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档