- 1、本文档共86页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 指针 本章概述 指针是C语言的特色之一,灵活运用指针可使程序更加高效、简洁。 指针就是内存地址,不同于通过变量名引用内存单元的直接访问方式,使用指针可实现对内存单元的间接访问。 本章介绍指针的有关概念,介绍指针与数组的关系,介绍与函数的关系。 本章的学习目标 本章教学目的:理解指针的概念和内存访问的关系,掌握指针的定义、引用。熟练使用指针访问基本类型的数据。理解指针与数组的关系,运用指针实现对数组的访问,包括对一维数组和二维数组处理。理解指针与字符串(字符数组)的关系,运用指针操作字符串。理解指针数组的概念,能运用指针数组处理相关的数据类型,尤其是运用字符指针数组处理多个字符串。理解指针与函数的关系,运用指针实现函数调用。理解带参数的main函数作用及各个参数的含义。 本章教学重点:指针的概念,指针与数组的关系。 本章教学难点:指针数组,指针与函数,多重指针。 主要内容 9.1 指针的基本概念 9.2 指针与一维数组 9.3 指针与字符串 9.4 指针与二维数组 9.5 指针数组与多级指针的概念 9.6 指针与函数 9.7 命令行参数 9.8 程序设计举例 9.1指针的基本概念 内存是计算机的重要组成部分,在程序的执行过程中,所用到的数据都存于内存中。 内存单元的基本单位是字节,为方便对内存的访问,内存单元的每个字节都有一个编号,这个编号就是内存的地址。 C程序中的每一个变量,在内存中都占用一定数量的内存单元。给变量赋值就是将数据存入对应的内存单元,使用变量时是按照变量所占用的内存单元的地址,从该地址所对应的内存单元中取出变量的值。 因为我们是通过变量的地址来找到存储变量值的内存单元,从而取得了变量的值,所以将变量的地址又称为变量的指针 。 9.1指针的基本概念 如右图所示,整型变量i占2000、2001两个字节的内存,整型变量j占2002、2003两个字节的内存,其内存单元中存放的是整型数据。而变量p占3000、3001两个字节的内存,其内存单元中存放的是变量i的地址2000(一个变量占多个字节的内存单元时,以首地址表示该变量的地址)。这种存放另一个变量的地址的变量称为指针变量。称变量p指向变量i,p中存储的是变量i的指针。 对一个变量的访问(访问是指取出其值或向它赋值)方式有两种: (1)直接访问:通过变量名访问,如通过变量名i直接访问i。 (2)间接访问:通过指向该变量的指针变量来访问,如通过p访问变量i。 9.1.1指针变量的定义 指针变量是一类特殊的变量,其值是一个变量的地址。既然是变量,就需要在使用之前先对其定义,然后才可以使用。 指针变量定义的一般形式: 类型标识符 * 标识符; 其中,类型标识符用于指出所定义指针变量可以指向的变量类型,称为指针变量的“基类型”,标识符是指针变量名,“*”表示定义指针变量。 9.1.1指针变量的定义 例如: int *p1; /*定义指针变量p1,指向整型变量*/ float *p2; /*定义指针变量p2,指向实型变量*/ char *p3; /*定义指针变量p3,指向字符型变量*/ 9.1.1指针变量的定义 定义指针变量时应该注意: (1)标识符前的“*”只是一个符号,表示其后的变量是一个指针变量。 (2)指针变量的基类型必须与所指向的变量类型一致,否则会出错。 例如: float x; int *p1=x; 是错误的。 因为p1的基类型为整型,而变量x 是单精度类型,数据类型不一致。 9.1.2指针变量的引用 (1) :取地址运算符,用于取变量的地址。 例如: int i,*p1; p1=i; 取i的地址赋给指针变量p1。 (2) *:指针运算符,用于访问指针变量所指向的变量。 例如: int i,*p1; p1=i; *p1=100; 则*p1与i等价,访问i时,可以用间接方式,用*p1代表i,语句“*p1=100;”与“i=100;”相同,为i赋值100。 9.1.2指针变量的引用 若有: int i=100; int *p1; p1 = i; 则指针变量p1指向变量i,对变量i有如下两种访问方式: (1)直接访问。 如 printf(“%d”,i); (2)通过指针变量间接访问。 如:printf( “%d”,*p1); 9. 1. 2指针变量的引用 9. 1.
您可能关注的文档
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第1章 C语言概述.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第2章 数据类型表达式及其运算.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第3章 顺序结构程序设计.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第4章 选择结构程序设计.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第5章 循环结构程序设计.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第6章 数组和指向数组的指针.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第7章 函数与指针.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第8章 结构体和共用体.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第9章 文件.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第10章 C语言屏幕操作函数及应用.ppt
文档评论(0)