第7章 的指针.ppt

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

多级指针 定义: 指向指针的指针 一级指针:指针变量中存放目标变量的地址 p1 p2 i 3 P2(指针变量) i(整型变量) 例 int **p1; int *p2; int i=3; p2=i; p1=p2; **p1=5; 二级指针:指针变量中存放一级指针变量的地址 例 int *p; int i=3; p=i; *p=5; i 3 P(指针变量) i(整型变量) 一级指针 单级间接寻址 二级指针 一级指针 目标变量 二级间接寻址 定义形式:[存储类型] 数据类型 **指针名; 如 char **p; 例 int i, **p; p=i; *p是p间接指向对象的地址 **p是p间接指向的对象 例 int i=3; int *p1; int **p2; p1=i; p2=p1; **p2=5; i p1 p2 3 i p1 **p2, *p1 *p2 多级指针 例 三级指针 int ***p; 四级指针 char ****p; (?)/*p是二级指针,不能用变量地址为其赋值*/ 二级指针与指针数组的关系 int **p 与 int *q[10] 指针数组名是二级指针常量 p=q; p+i 是q[i]的地址 指针数组作形参,int *q[ ]与int **q完全等价;但作为变量定义两者不同 系统只给p分配能保存一个指针值的内存区;而给q分配10块内存区,每块可保存一个指针值 定义 含义 int i; int *p; int a[n]; int *p[n]; int (*p)[n]; int f(); int *p(); int (*p)(); int **p; 定义整型变量i p为指向整型数据的指针变量 定义含n个元素的整型数组a n个指向整型数据的指针变量组成的指针数组p p为指向含n个元素的一维整型数组的指针变量 f为返回整型数的函数 p为返回指针的函数,该指针指向一个整型数据 p为指向函数的指针变量,该函数返回整型数 p为指针变量,它指向一个指向整型数据的指针变量 指针的数据类型 * * * * * 7.3 指针与一维数组 1 指向数组元素的指针变量 例 int a[10];  int *p; a[0] a[1] a[2] a[3] a[9] ... 整型指针p a[0] p 2 指针的运算 (1) 指针变量的赋值运算 p=b; (将变量b地址?p) p=a; (将一维数组a首地址?p) p=a[i];(将数组元素地址?p) p1=p2; (指针变量p2值?p1) 不能把一个整数?p,也不能把p的值?整型变量 如 int i, *p; p=1000; (?) i=p; (?) p=a[0]; //? p=a; 或 int *p=a[0];(初始化) 或 int *p=a;(必为一维数组名,不是整个 数组赋值,只是传递首地址) (2) 指针的算术运算: p?i ? 以p所指目标变量存储空间为单位,向上或向下跳i次 p++, p--, p+i, p-i, p+=i, p-=i等(注意指针移动方向) 若p1与p2指向同一数组,p1-p2=两指针间元素个数 p1+p2 无意义 例 p指向float数,则 p+1 ? p向下跳一个float型数据 例 p指向int型数组,且p=a[0]; 则p+1 指向a[1]; 例 int a[10]; int *p=a[2]; p++; *p=1; a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a数组 p p+1,a+1 p+i,a+i p+9,a+9 1 (3) 指针变量的关系运算 若p1和p2指向同一数组,则 p1p2 表示p1指的元素在前 p1p2 表示p1指的元素在后 p1==p2 表示p1与p2指向同一元素 若p1与p2不指向同一数组,比较无意义 3 数组元素表示方法 a[0] a[1] a[2] a[3] a[9] ... a a+9 a+1 a+2 地址 元素 下标法 a[0] a[1] a[2] a[3] a[9] ... p p+9 p

文档评论(0)

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

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

1亿VIP精品文档

相关文档