第七章 指针11.PPT

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 指针 7.1 指针的概念 变量与地址 与*运算符 含义 7.2 指针变量 指针变量的初始化 一般形式:[存储类型] 数据类型 *指针名=初始地址值; 指针变量作为函数参数——地址传递 特点:共享内存,“双向”传递 * * 程序中: int i; float k; 内存中每个字节有一个编号-----地址 …... …... 2000 2001 2002 2005 内存 0 2003 i k 编译或函数调用时为其分配内存单元 …... …... 2000 2004 2006 2005 整型变量i 10 2001 2002 2003 指针与指针变量 指针:一个变量的地址 指针变量:专门存放变量地址的变量叫~ 变量i 的地址 指针变量 pointer 含义: 取变量的地址 单目运算符 优先级: 2 结合性:自右向左 含义: 取指针所指向变量的内容 单目运算符 优先级: 2 结合性:自右向左 两者关系:互为逆运算 理解 …... …... 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 2000 指针变量 i :对变量 i 求其地址 *i_pointer: 求i_pointer地址里的内容 i_pointer = i = (*i_pointer) i = *i_pointer = *(i) 指针变量的定义 一般形式: [存储类型] 数据类型 *指针名; 例 int *p1, *p2; float *q ; static char *name; 注意: 1、指针变量名是p1,p2 ,不是*p1,*p2 2、指针变量只能指向定义时所规定类型的变量 3、指针变量定义后,变量值不确定,应用前必须先赋值 赋给指针变量, 不是赋给目标变量 例 int i; int *p=i; 变量必须已定义过 类型应一致 例 int *p=i; int i; 例 int i; int *p=i; int *q=p; 用已初始化指针变量作初值 例 main( ) { int i; static int *p=i; .............. } (?) 不能用auto变量的地址 去初始化static型指针 例 main( ) { int i=10; int *p; *p=i; printf(“%d”,*p); } 危险! 例 main( ) { int i=10,k; int *p; p=k; *p=i; printf(“%d”,*p); } 指针变量必须先赋值,再使用 …... …... 2000 2004 2006 2005 整型变量i 10 指针变量p 2001 2002 2003 随机 例 指针的概念 main() { int a; int *pa=a; a=10; printf(a:%d\n,a); printf(*pa:%d\n,*pa); printf(a:%x(hex)\n,a); printf(pa:%x(hex)\n,pa); printf(pa:%x(hex)\n,pa); } 运行结果: a:10 *pa:10 a:f86(hex) pa:f86(hex) pa:f88(hex) …... …... f86 f8a f8c f8b 整型变量a 10 指针变量pa f87 f88 f89 f86 例 输入两个数,并使其从大到小输出 main() { int *p1,*p2,*p,a,b; scanf(%d,%d,a,b); p1=a; p2=b; if(ab) { p=p1; p1=p2; p2=p;} printf(a=%d,b=%d\n,a,b); printf(max=%d,min=%d\n,*p1,*p2); } 运行

文档评论(0)

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

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

1亿VIP精品文档

相关文档