第6章指针引用和动态空间管理.docVIP

  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文档。上传文档
查看更多
第6章指针引用和动态空间管理.doc

第6章指针、引用和动态空间管理 内容提要】 指针概述 指针与数组 指针与函数 指针与字符串 动态存储分配 引川的概念及应川 熏点与难点】 6.1指针概述 指针变量用于存放一个对象在内存中的地址。通过指针变量可以间接访问对象。 6.1.1指针变朵的定义 格式: 存储类型数据类型*指针变景名; 说明: 通常把指针指hd的变:的数裾类型称为指针的数裾类型;指针变:W:的类型确定P只能指昀 这种既定的数裾类型。而任何一个指针变兒:木旮数裾位的类型都是unsigned long into 这里的“*”表示定义的是一个指针变量。 6.1.2指针运算符 取地址运算符 * M接引用运算符 在指针变M的定义和指针变鲎的引用中都有*p。似引用指针时的忭与定义指针变量吋 含义是不同,在指针变景的定义屮如int *p;是指p是一个指句整型的指针,而在引用时*p 是指p所指向的变量。 6.1.3指针运算 4指针的赋值运算 当向桁针变量赋值吋,赋的值必须是地址常量或变量,不能是7?通整数。指针赋值运算 常见的有以K儿种形式:把一个变量的地址赋予一个指向相同数据类型的指针;把一个指针 的值赋予相M数据类型的另外一个指针;把数组的地址赋予指叫相M数据类型的指针。 士指针的算木运算 指针与整数的加减运算:指指针从当前桁向位置向前或向后移动几个数据单76。由干指 针可以指句不同数裾类型,即数据长度不同的数据,所以这种运算的结果值取决于指针指14 的数据类型。该运算通常用于对数组元素进行操作的场合。 两个指针相减运算:指在两个指针指hd的变W:类型相同时相减的结果为两个指针所指的 地址之间相隔的数据元素的个数。 4-桁针的关系运算 在两个指叫相同类型变暈的指针之间nJ■以进行各种关系运算,它实现对两个指针所指变 量地址值的比较。 6.1.4 const 指针 A桁向常量的指针 格式:const数据类型*指针变量名; 说明:在程序中不能通过指针来改变它所指昀的数裾的值,但是指针本身的值可以改变。 I指针常量 格式:数据类型* const指针变量名=初始地址值; 说明:指针木身的值不吋改变,但它所指向的数裾的值吋以改变。 4指向常量的指针常运 格式:const数裾类型* const指针变虽名=初始地址值; 说明:指针本身的值不可改变,它所指向的数裾的值也不能通过指针改变。 6.2指针与数组 i数组元素的访问 在第叫章屮己经介绍了如何访M数组元素的简单方法,这里介绍访14数组元素的另两种 方法。 地址法:一个数组名代表它的起始地址。地址法即通过地址访问某一数组元素。 如定义inta[5];则对数组的第i+1个元素的访问可以用a[i]或*(a+i)。 对于二维数组如定义int b[2][3];则b[O],b[l]分别代表第一行和第二行的首地址。所 以要访问数组元素b[i][j]可以用下列儿种形式:*(*(b+i)+j)、*(b|_i]+j)、*(b+i仙、*(b+3*i+j)。 指针法:通过指针访问某一数组元素。 如定义一个指向数组元素的指针,int a[5],*p=a;,则对数组的第i+1个元素的访问 可以用*(p+i)它等价于a[i]。 对于二维数组如定义^^12]13』,什斗则则访问数组元素吣讪可以用以下儿种形成: *(*(q+i)+j)、*(q[i]+j)、*(q+i)[jl、*(q+3*i+j)、q[i][j]。 4数组指针与指针数组 数组指针 格式:数据类型(*指针名)L常量表达式h 说叨:数组指针是一个指向一维数组的指针变量。 指针数组 格式:数据类型*桁针数组名[常量表达式]; 说明:数组元素为指针的数组,即数组屮的毎个元素为指既定的数裾类型的指针。 6.3指针与函数 6.3.1指针作为函数参数 若指针作为某函数的参数,对该函数的调用即为传地址调用。 6.3.2指针型函数 当一个函数的返回值是指针类型时,这个函数就是指针型函数。它的作用是当需耍返W 大fi数裾时可以通过指针型函数完成,当然这需要冇效组织数裾所占的A存夺间。这种情况 多川于返回数组、字符串等。 定义指针函数的函数孓的格式为:数裾类型*函数名(参数表) 6.3.3函数指针 ‘函数指针就是指叫函数的桁针。 定义格式: 数据类型(*函数桁针名)(参数表); 说明:数据类型是指函数指针所指向函数的返回值的类型,参数表中指明该函数指针所 指叫函数的形参类型和个数。 ‘函数指针变S在使用前应该先给它赋值,格式为:函数指针名=函数名; 1当函数指针指向某函数以后,可以用下列形式调用函数:(*指针变量)(实参表列) ‘函数指针数组 定义格式:数据类型(*函数指针名I常暈表达式j)(参数表); 说明:函数指针数组中的每个元素是一个指向既定类型函数的指针。每个元素所指向的 函数具有相同的数据类型和相同的参数

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档