C++指针存储结构讲解.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C指针存储结构讲解

引用 如图对引用j的所有操作都作用到变量i上,使得引用j就像透明的或者不存在一样,像极了周星驰电影《大内密探零零发》中无相神王的隔山打牛重拳,“中拳者无事,旁观者毙命!” 数组 来看一下数组的声明 int ia[3]; 此语句会在内存中分配12个字节的空间准备存放三个int 数组 那么我们能不能得到数组元素的地址或者使用指针来操作数组元素呢,答案是肯定的。 如果只简单写ia; 即只写数组名则代表数组中第一个元素的地址,它的类型是数组元素类型的指针,本例是int *; 因此ia和ia[0]是等价的,都是数组第一个元素的地址 数组 int *p=ia[0]; 表示p里面存放的是数组第一个元素的地址 cout*pendl; //使用了解引用,参考整形指针解引用的处理方式,打印数组第一个元素的内容。 同理 ia+1和 ia[1] 取到的是数组第二个元素的地址(注意ia+1中的1是增加了一个数据类型的宽度,int是4个字节) ia[1]和*(ia+1) 一致,打印的是第二个元素的内容。 此种数组的声明方式会在离开数组变量作用域时自动释放,不会造成内存泄漏。 动态存储分配 new 该运算符返回一个指向所分配空间的指针。例如,要为一个整数动态分配存储空间,可以用下面的语句说明一个整形指针变量; int *y; y=new int; *y=10; 动态存储分配 为了在运行时创建一个可动态变化的一维整形数组x,可先将x声明为一个整形的指针,然后 用new为数组动态的分配存储空间。比如 int *x; x=new int[3]; 随后可以用x[0],x[1]等方式来访问每个数组元素 动态存储分配 用下标方式访问数组元素很像静态的数组声明,比如 int x1[3]; 我们可以用x1[0],x1[1]的方式来访问每个数组元素。可能同学们比较熟悉静态数组的声明访问方式,现在就需要了解动态分配存储空间的数组方式。 两者有两方面的不同 声明时,动态方式是声明了一个指针类型,静态数组是声明一个数组类型。但两者访问方式完全一样,较多采用x[0],x[1]等方式 静态方式会在离开数组变量作用域时自动释放,而动态方式我们需要通过delete []x手动释放。 函数参数传递在内存中的表示 参数传递有两种方式:一种是按值传递, 在这种参数传递方式下,把实参的值复制到函数局部工作区相应的副本中,函数使用副本执行必要的计算。因此函数实际修改的是副本的值,实参的值不变。 按值传递有分两种: 1将变量名作为形参和实参 2传递变量指针 函数参数传递在内存中的表示 void swap(int a,int b) {//形参为整型变量 int temp=a; a=b; b=temp; } int main() { int i=3,j=4; swap(i,j); couti=i,j=jendl; } 函数参数传递在内存中的表示 函数参数传递在内存中的表示 void swap(int *a,int *b) {//形参为整型变量 int temp; temp=*a; *a=*b; *b=temp; } int main() { int i=3,j=4; swap(I,j); couti=i,j=jendl; } 函数参数传递在内存中的表示 当执行到函数体temp=*a; 内存存储如图 函数参数传递在内存中的表示 当执行到函数体*a=*b; 内存存储如图 函数参数传递在内存中的表示 当执行到函数体*b=temp; 内存存储如图 函数参数传递在内存中的表示 第二种方式是按引用传递参数。 在这种参数传递方式下,需将形参声明为引用类型,即在参数名前加上符号””。当一个实参与一个引用类型结合时,被传递的不是实参的值,而是实参的地址。 函数参数传递在内存中的表示 void swap(int a,int b) {//形参为整型变量 int temp; temp=a; a=b; b=temp; } int main() { int i=3,j=4; swap(i,j); couti=i,j=jendl; } 函数参数传递在内存中的表示 当执行函数体内temp=a; 内存存储如图 函数参数传递在内存中的表示 当执行函数体内a=b;内存存储如图 函数参数传递在内存中的表示 当执行函数体内b=temp;内存存储如图 王华杰 2010-09-16 C++指针存储结构 C++指针存储结构 概述 线性排序 二进制存放 数据类型和编码 变量和指针 引用 数组 动态存储分配 函数参数传递在内存中的表示 概述 c++的学习中,对指针的理解和把握相当重要,可能很多同学对此感到困惑。我个人感觉指针的理解实际上还是依赖于

文档评论(0)

22ffbqq + 关注
文档贡献者

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

1亿VIP精品文档

相关文档