第23课 指针.ppt

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

第23讲 指针(一) 目标: 1 理解地址和指针的概念 2 指掌握指针变量和变量指针的相关知识 3 简单了解指针与数组 9.1 概念 1.数据在内存中的存储方式: 按数据类型给在内存为其分配一定数量的存储单元(字节)。 4.变量的“直接访问”方式: 按变量的地址(即变量名)存取变量值的方式。(见下图) 内存用户数据区示意图: 1.算术运算 例如: int *p,i; char *q , c; p=i;q=c; 例如:右图1 pq为假。 再例:由下列图(a)形式, 思考: 1.若已执行了“pointer_1=a”,则: “*pointer_1”的含意是什么? (答:相当于a ) [例]对输入的两个整数按大小顺序输出 main() {int *p1,*p2,*p,a,b; a=5;b=9; p1=a;p2=b; ①   ------指向指针变量的指针. 定义形式: 类型 **变量名; 例如: int i,*p,**q; i=30; p=i; q=p; 9.4 指针与数组 指向一维数组的指针 指向多维数组的指针 指向字符串的指针 1.指向数组元素的指针变量的定义方式: 类型 *指针变量名; 例如: int *p; c规定: p=p+1:新p指向数组的下一元素。 p=p+1:意味着新p比原 p的地址值多d个字节(d为一个数组元素所占的字节数)。 (1)通过数组名计算数组元素地址,找出元素的值 main() {int a[10]; int i; for (i=0;i10;i++) scanf(%d,a[i]); main() {int a[10]; int *p,i; for (i=0;i10;i++) scanf(%d, p++); 例如有定义:int a[10],*p; p=a; p++合法;但a++不合法(a是数组名,代表数组首地址,是常数地址。) 要注意指针变量的当前值。 课堂练习1: main() {int a[3],*p=a; a[0]=10;a[1]=20;a[2]=30; printf(“%d\n”,*p++); printf(“%d\n”,*++p); } main() {int a[]={1,2,3,4,5}; int *p=a+3; printf(“%d,%d,%d\n”,*p,*(p+1),*p+3); } (*p)++; 表示p所指向的元素值加1(即a[0]++),而不是指针值p加1。 *(p++)与*(++p): *(p++)是先取*p的值,后使p加1; *(++p)是先使p加1,后取*p的值。 10 30 跟我来! 答案: * 银河软开 第21课 指针 * 跟我来! 2.内存单元的地址: 内存单元的编号,与变量名对应。 3.内存单元的内容: 即变量的值。 例如有定义: int a,b; char c; float x; 变量a,b,c,x的内存分配情况: a b x c 跟我来! i 2000 3 直接访问: 跟我来! 3 i 2000 2000 pointer 间接访问方式示意图: 将变量的地址放在另一个内存单元中,先到另一个内存单元中取得变量的地址,再由变量的地址找到变量并进行数据存取(见下图)。 跟我来! 5.变量的“间接访问”方式 变量pointer为指针变量,存放的是变量i的内存地址,我们说pointer指向 i。 3 6 9 ... .. 2000 ... 变量i 变量j 变量k 变量pointer 3010 2000 2002 2004 变量的值用10进制示意 内存地址 6.指针的概念: 一个变量的地址称为该变量的指针。 9.2 指针与变量 一. 指针变量的定义 1. 定义方式: 类型标识符 *指针变量名; 跟我来! 例:float *p1; (定义了p1为指向实型变量的指针变量) char *p2; (定义了p2为指向字符型变量的指针变量) 标识符前面的“*”,表示该变量为指针 变量。但指针变量名是*后面的名字(不包括“*”)。 3.说明 2. 指针变量的三要素: 指针变量的类型: 和其所指变量的类型一致; 指针变量的值:另一个变量在内存的地址; 指针变量的名字:起法同普通变量。 指针变量名=某一地址; 跟我来! 二.指针变量的赋值 方式1: 指针变量名=变量名; 方式

文档评论(0)

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

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

1亿VIP精品文档

相关文档