C语言程序设计No.11-13第十章指针c_pointer试卷.ppt

C语言程序设计No.11-13第十章指针c_pointer试卷.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 主 讲: 刘怀亮 E-mail:liuhuil@mail.xidian.edu.cn 经济管理学院信息管理系 C语言程序设计 C Programming Language C程序设计中使用指针可以: 使程序简洁、紧凑、高效 有效地表示复杂的数据结构 动态分配内存 得到多于一个的函数返回值 第十章 指针 10.1 指针的概念 地址 程序中: int i; float k; 内存中每个字节有一个编号-----地址 i k 编译或函数调用时为其分配内存单元 变量是对程序中数据 存储空间的抽象 指针与指针变量 指针:一个变量的地址 指针变量:专门存放变量地址的变量叫~ 2000 指针 指针变量 变量的内容 变量的地址 与*运算符 含义 含义: 取变量的地址 单目运算符 优先级: 2 结合性:自右向左 含义: 取指针所指向变量的内容 单目运算符 优先级: 2 结合性:自右向左 两者关系:互为逆运算 理解 i_pointer-----指针变量,它的内容是地址量 *i_pointer----指针的目标变量,它的内容是数据 i_pointer---指针变量占用内存的地址 i_pointer i (*i_pointer) i *i_pointer *(i) i_pointer = i = (*i_pointer) i = *i_pointer = *(i) 直接访问与间接访问 直接访问:按变量地址存取变量值 间接访问:通过存放变量地址的变量去访问变量 例 i=3; -----直接访问 3 例 *i_pointer=20; -----间接访问 20 例 k=i; --直接访问 k=*i_pointer; --间接访问 10 例 k=i; k=*i_pointer; 10.2 指针变量 指针变量与其所指向的变量之间的关系 指针变量的定义 一般形式: [存储类型] 数据类型 *指针名; 合法标识符 指针变量本身的存储类型 指针的目标变量的数据类型 表示定义指针变量 不是‘*’运算符 例 int *p1,*p2; float *q ; static char *name; 注意: 1、int *p1, *p2; 与 int *p1, p2; 2、指针变量名是p1,p2 ,不是*p1,*p2 3、指针变量只能指向定义时所规定类型的变量 4、指针变量定义后,变量值不确定,应用前必须先赋值 指针变量的初始化 一般形式:[存储类型] 数据类型 *指针名=初始地址值; 赋给指针变量, 不是赋给目标变量 例 int i; int *p=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); } 指针变量必须先赋值,再使用 随机 零指针与空类型指针 零指针:(空指针) 定义:指针变量值为零 表示: int * p=0; p指向地址为0的单元, 系统保证该单元不作它用 表示指针变量值没有意义 #define NULL 0 int *p=NULL: p=NULL与未对p赋值不同 用途: 避免指针变量的非法引用 在程序中

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档