12.c-chap7 指针.ppt

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

提纲 7.1 引言 *7.2 指针变量的声明和初始化 *7.3 指针运算符 *7.4 函数的传引用调用 7.5 对指针使用const限定符 *7.6 使用传引用调用的冒泡排序法 *7.7 指针表达式和指针的算术运算 *7.8 指针和数组的关系 *7.9 指针数组 7.10 实例研究:洗牌和发牌游戏 *7.11 函数的返回值为指针 7.12 指向函数的指针 指针是C语言中的重要概念,也是C语言的重要特色。 指针的作用: -较之其他方法通常可以生成更高效、紧凑的 代码 ; -模拟传引用调用(可得到多个函数返回值); -操作动态数据结构; 对比:以前学过的静态数据结构(数据空间大小是编译时期确定的, 运行期间不能改变) 提纲 7.1 引言 7.2 指针变量的声明和初始化 7.3 指针运算符 7.4 函数的传引用调用 7.5 对指针使用const限定符 7.6 使用传引用调用的冒泡排序法 7.7 指针表达式和指针的算术运算 7.8 指针和数组的关系 7.9 指针数组 7.10 实例研究:洗牌和发牌游戏 7.11 函数的返回值为指针 7.12 指向函数的指针 7.2 指针变量的声明和初始化 二、变量值的存取──通过变量在内存中的地址进行 对变量进行存取有两种方式: (1)直接访问──直接利用变量的地址进行存取 1)上例中scanf(“% d”,i)的执行过程是这样的: 先找到变量i的起始地址2002;然后将键盘输入的值送到内存单元2002和2003中(假设int类型占用2字节内存)。 2)printf(“ i=%d, i)的执行过程,与scanf()很相似:首先找到变量i的起始地址2002,然后从内存单元2002和2003中取出其值,最后将它输出。 7.2 指针变量的声明和初始化 (2)间接访问─通过指针变量来访问该变量 C语言规定:在程序中可以定义一种特殊的变量(称为指针变量),用来存放其它变量的内存起始地址。可以通过指针变量来访问其他变量。 7.2 指针变量的声明和初始化 三、指针(变量)的概念 7.2 指针变量的声明和初始化 7.2 指针变量的声明和初始化 7.2 指针变量的声明和初始化 指针变量是一种特殊的变量,特殊性表现在类型和值上。 从变量讲,指针也具有变量的三个要素: (1)变量名:这与一般变量取名相同。 (2)指针变量的类型:是指针所指向的变量的类型,而不是自身的类型。 (3)指针的值:是某个变量的内存地址。 从上面的概念可知,指针所存放值的类型是整型,因为任何内存地址都是整型的。但是指针变量的类型却定义成它所指向的变量的类型,因为地址对于编译器来说不足以解析地址的数据类型。 7.2 指针变量的声明和初始化 7.2 指针变量的声明和初始化 五、指针变量的初始化 没有初始化的指针变量可能指向任意地址。 指针在使用前必须初始化,否则将会导致意想不到的问题! 指针变量可以赋值为0(唯一可直接赋给指针变量的整数值)、NULL(在stdlib.h中定义的常量, 代表0)或某个内存地址; 当赋值为0或者NULL时,表示该指针为空指针,不指向任何地址。推荐当指针不指向任何地址时,赋值为NULL。 提纲 7.1 引言 7.2 指针变量的声明和初始化 7.3 指针运算符 7.4 函数的传引用调用 7.5 对指针使用const限定符 7.6 使用传引用调用的冒泡排序法 7.7 指针表达式和指针的算术运算 7.8 指针和数组的关系 7.9 指针数组 7.10 实例研究:洗牌和发牌游戏 7.11 函数的返回值为指针 7.12 指向函数的指针 7.3 指针运算符 三类运算: 取变量的地址 * 取指针所指变量的值 = 指针的赋值运算 7.3 指针运算符 7.3 指针运算符 注意:当一个指针p是空指针时(即p==NULL或p==0),必须不能询问该指针指向的内存值! 以下代码运行不正确: int *p; p=NULL; /*或p=0*/ printf(“%d”, *p); 7.3 指针运算符 例2:指针的运用 练习目的:体会变量的间接访问方式 main() { int i,j; int *iPtr,*jPtr; i=2; j=4; iPtr=i; jPtr=j; printf(%d,%d\n,*iPtr,*jPtr); printf(%p,%p\n,iPtr,jPtr);

文档评论(0)

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

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

1亿VIP精品文档

相关文档