C语言经典数组与指针.ppt

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

第八章 指 针; 内存地址:计算机内存的组织方式是把所有单元顺序排列,每个单元有一个顺序编号,称单元的地址。形象化地叫指针 地址本身也是用二进制编码的,任何数据对象在它被使用的时候,都必然有一个确定的存储位置,占据着确定数目的存储单元。 存储在内存的数据,最终都是根据其存储位置,通过存储单元的地址访问的。 任何变量,在其存在期间,总有一个确定的、固定的存储位置,即固定的地址。变量地址可能作为数据来操作。 指针变量是C语言提供的一种操作变量地址的机制。指针变量中保存的是其它对象的地址。 通过指针变量,可以进行对有关对象的访问和处理。 【讨论】C语言操作指针变量和普通变量的特点,什么是直接存取?什么是间接存取? 【讨论】使用指针进行程序设计的好处 ;8.2.1 指针的定义 1. 定义指针变量的一般形式如下: 类型名 *指针变量名1,*指针变量名2,... *指针变量名n ; 2. 空指针 空指针是一个特殊的指针,它的值是0,C语言中用符号常量NULL(在stdio.h中定义)表示这个空值,并保证这个值不会是任何变量的地址。空指针对任何指针类型赋值都是合法的。一个指针变量具有空指针值表示当前它没有指向任何有意义的东西。 3. viod指针 (void *)类型的指针叫通用指针,可以指向任何的变量,C语言允许直接把任何变量的地址作为指针赋给通用指针。 当需要使用通用指针所指的数据参加运算时,需要写出类型强制转换。如通用指针gp所指空间的数据是整型数据,p是整型指针,用下式转换: p=(int *)gp;;8.2.2 指针的操作 1. 指针赋值 (1) 取地址运算(一元运算符)和指针赋值 (2) 指针变量赋值 (3) 通过标准函数获得地址值 2. 间接运算(一元运算符*) 将一元运算符‘*’放在指针变量名前,也可以是地址前,效果是由一个指针得到被它指向的变量,可以像使用普通变量一样使用该表达式。 3. 移动指针 移动指针就是对指针变量加上或减去一个整数、或通过赋值运算,使指针变量指向相邻的存储单元。因此,只有当指针指向一串连续的存储单元时,指针移动才有意义。 ;8.2.2 指针的操作 3. 移动指针 对指针进行加、减运算中,数字“1”不再代表十进制数“1”,而是1个存储单元长度,整型变量存储单元长度是2个字节,整型指针移动1个存储单元就是移动2个字节,双精度变量存储单元长度是8,双精度型指针移动1个存储单元就是移动8个字节,依此类推。 程序中移动指针时,不论指针的基类型是什么,只需简单地加、减一个数而不必去管它的具体长度,系统将会根据指针的基类型自动确定位移的字节数 最常用的移动操作就是加一和减一操作++、--。它们分别代表指针向地址值增大的方向移动一个存储单元和指针向地址值减少的方向移动一个存储单元。 两个指向同一串连续单元的指针可以进行相减的运算,结果是两个指针之间元素的个数,可以通过赋值使两个指针指向同一个单元。 ;8.2.2 指针的操作 4. 指针比较 两个指针指向同一串连续的存储单元时,可以在关系表达式中对其进行比较,判断指针的位置关系,两个指针变量的值相等,表示它们指向同一个存储单元。还可进行是否是空指针的判断。 指针基类型对指针相关操作的约束和限制: (1)基类型使指针只能指向基类型定义的一类变量。 (2)限制引用操作满足基类型的约束。(范围、运算、内存表示) (3)限制指针移动操作的跨度。 ;8.2.3 指针变量的初始化 指针变量在定义时可以用任何合法的指针(地址)值进行初始化。 如果在定义指针变量时没有进行初始化,全局变量和局部静态变量将被自动地初始化为空指针(0)。局部自动变量、寄存器变量将不自动初始化,这些变量建立后的值不能确定。一定要有明确的变量关联后,才能使用这些变量。;形式: 类型名 函数名(类型名 形参1,类型名 形参2…)

文档评论(0)

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

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档