C语言程序设计第四版_第8章指针探索.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 指针 内存地址──内存中存储单元的编号 计算机内存由大量存储单元 (memory unit)组成。 每个存储单元容量为1字节(byte) 。 每个存储单元有编号,即存储单元的“地址” (address) 。 存储单元中可存放数据(data)。 变量的地址 定义变量时,系统分配给变量的内存单元的起始地址 变量值的存取通过变量在内存中的地址进行 变量的地址称为“指针”(pointer) 变量的访问方式 (1)直接访问──直接利用变量的地址进行存取 例:short int a; //分配内存地址 a=500; 在符号表中检索变量名a,找到其起始地址(例如13A6);将数值500(的二进制形式)送到内存单元13A6和13A7中 变量的访问方式 (2)间接访问──通过指针变量访问变量地址 定义一种特殊的变量,用来存放其它变量的地址(指针),这种变量称为指针变量,它指向一个普通的变量。 指针变量的定义和调用 例: 例. 分析以下程序运行结果 int main() { int n1,n2; int *n1_p=n1, *n2_p=n2, *pointer; printf(Input n1:); scanf(%d,n1_p); printf(Input n2:); scanf(%d,n2_p); printf(n1=%d, n2=%d\n, n1, n2); printf(*n1_p=%d, *n2_p=%d\n, *n1_p, *n2_p); printf(n1_p=%o, n2_p=%o\n, n1_p, n2_p); pointer=n1_p; n1_p=n2_p; n2_p=pointer; printf(n1=%d, n2=%d\n, n1, n2); printf(*n1_p=%d, *n2_p=%d\n, *n1_p, *n2_p); printf(n1_p=%o, n2_p=%o\n, n1_p, n2_p); } 上页代码要点 开始时指针变量n1_p指向n1,指针变量n2_p指向n2。 变量n1和n2的值并没有改变,但n1_p 和n2_p的值改变了,也就是指向改变了。指针变量n1_p指向n2,指针变量n2_p指向n1。 掌握几个重要概念 内存 内存单元 内存单元的地址 变量的首地址 指针 指针变量 指针变量的指向 直接访问与间接访问 指针变量的重要作用之一 ——作为函数的参数,实现地址传递 例 函数调用中的值传递 int main() { void swap(int p1,int p2); int a,b; scanf(%d,%d,a,b); if(ab) swap(a,b); printf(%d,%d\n,a,b); return 0; } 例 通过指针变量实现地址传递的效果 void swap(int *p1,int *p2) { int p; p=*p1; *p1=*p2; *p2=p; } 指针变量作为函数的参数 指针变量 访问数组——指针的又一重要用途 short int a[3]; 数组和指针的相关概念 定义指向数组的指针变量 int array[5], *pointer = array; int array[5], *pointer; pointer = array; int array[5], *pointer = array[0]; 使用指针访问数组元素,能使目标程序占用内存少、运行速度快。 通过指针引用数组元素 例 通过指针引用数组元素 通过指针引用数组元素 数组名作为函数的参数 进一步分析——用指针访问数组 数组名作为函数的参数—以指针表示 多维数组的指针——以二维数组为例 多维数组的指针——以二维数组为例 多维数组的指针——以二维数组为例 多维数组的指针——以二维数组为例 通过指针引用字符串 通过指针引用字符串 通过指针引用字符串 通过指针引用字符串 字符指针作函数参数 指向函数的指针 返回指针值的函数 指针数组和多重指针 动态内存分配与指向它的指针变量 动态内存分配与指向它的指针变量 小 结 P.255 例8.16 使用字符数组存放字符串 使用字符数组名输出字符串 使用字符数组下标访问数组元素 P.256 例8.17 使用基类型为字符的指针变量保存字符串首元素地址,从而访问字符串 char *p=China; printf(%s,p); P.256例8.18数组名指针的应用(字符型) P.256例8.19指针变量访问字符

文档评论(0)

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

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档