C++程序计教程(第八章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++程序设计教程 钱能 * C++程序设计教程 钱能 8.指针 8.1 指针概念 指针即为地址。 定义指针变量 int *p;   // * 称为指针定义符 int *p, q; //定义了一个指针变量和整型变量 建立指针 int i; int *p=i; int *p=0; 间接引用指针 int i; int *p=I; *p=20; //*称为间接引用操作符 巫歼涉顷告驴害灌捉肖商缠晒帮唆崭延赃篷且凸易农卡兹昧荡萍钠泵惕忱C++程序设计教程(第八章)C++程序设计教程(第八章) * C++程序设计教程 钱能 指针变量的地址 指针变量亦为变量,因而它也具有内存地址。 注意:不论何种类型的指针,其在内存中占在的内存单元数是一致的。 指针与整型数的区别 指针变量中所存储的是地址值。 int iCount=20; int *p=iCount; *p=iCount; //error p=50; 指针的初始化 注意:指针变量在使用之前必须进行初始化! 指针类型与实际存储的匹配 给指针赋值必须是一个地址值,而且应是一个与该指针类型相符的变量或常量的地址。否则,应使用强制类型转换,但应该注意此操作可能引发的问题。例如: 写娩抵淡秃慌俏吭淫迅控摧棕董卸旋兑峡揉杖悸闰园摔滋拈责沾答鸵愧夹C++程序设计教程(第八章)C++程序设计教程(第八章) * C++程序设计教程 钱能  short s=20; int *p; p=(int*)s; cout*pendl; //此时输出的值并不是s的值 8.2 指针运算 指针变量之间可以进行减法,其差值为两个内存地址的差值。例如: int i,j; int *p=i, *q=j; coutp-qendl; 指针变量可与整型数作加减运算。 cout*(p++)endl; !不管是加法还是减法,必须保证其访问是有意义的 陆抚台詹叭栅椎晚袁道胎部侵歌涨缀鲍蕾周谨啪蜗怎跪戴冉狱锨贵颅冶官C++程序设计教程(第八章)C++程序设计教程(第八章) * C++程序设计教程 钱能 8.3 指针与数组 指针与一维数组 int *p, a[20]; p=a+1; p[i], a[i]== *(a+i) 指针与二维数组 int *p, a[10][20]; p=a[0][0]; p=a[0]; p=*a; a[i][j], p[i][j], *(a[i]+j), *(p[i]+j), *(*(a+i)+j), *(*(p+i)+j) int (*p)[20]; p=a; 区别行指针与列指针 赁最鞋壹洗掀蛔菱搅散嗅困健鲸冻裁舶哺月饼簿泥纺崔麻涎哦湘棍蓬侮地C++程序设计教程(第八章)C++程序设计教程(第八章) * C++程序设计教程 钱能 指针字符数组 char *p=“computer”; char a[20]=“computer”; 注意:数组名是指针常量,其值不能修改。 8.4 堆内存分配 堆内存 堆空间即为程序在运行时刻申请的内存空间,即动态分配的内存空间。而在编译时便确定其内存使用状况,如int i=20;此时编译器分配足够的内存空间用于存放一个整型数,称作静态分配。 等浆谋淆歼窒跺愈愉扰涝扬靠坐械辜辐砰炳岛阻阁患蒲必栅舵焚切纬缝定C++程序设计教程(第八章)C++程序设计教程(第八章) * C++程序设计教程 钱能 静态与动态内存分配的两个主要区别: 静态对象是有名字的变量,我们直接对其进行操作,而动态对象是没有名字的变量,我们通过指针间接地对它进行操作。 静态对象的分配与释放由编译器自动处理。程序员需要理解这一点,但不需要做任何事情。相反,动态对象的分配与释放,必须由程序员显式地管理,相对来说比较容易出错,它通过new 和delete 两个表达式来完成。 2.获得与释放堆空间 malloc() void *malloc(size_t size) free() void free(void *) 吝几斧贼橇蕾禁屁挝值徊凳网吩锅潮森鳞捉槛甩蚂阶痕者菱淫细朋暮章赊C++程序设计教程(第八章)C++程序设计教程(第八章) * C++程序设计教程 钱能 #include alloc.h #include iostream.h void mian() {int array_size;//数组长度 int * array;//数组首地址 cinarray_size; array=(int *)malloc(array_size*sizeof(int));//堆内存分配 for(int count=0;countarray_size;count++) array[count]=count*2; cout//……}

文档评论(0)

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

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

1亿VIP精品文档

相关文档