第6章指针_2014.04.24题材.ppt

  1. 1、本文档共107页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机程序设计语言;第6章 指针;6.1 指针基础;内存 计算机的内存储部件,所有指令和数据都保存在内存中 速度快,但是断电即失 可以随机访问 只要指名要访问的内存单元的地址,就可以立即访问到该单元 地址 地址是内存中每个字节固定的编号,是一个无符号整数(通常用16进制数表示) ;地址 地址是内存中每个字节固定的编号,是一个无符号整数 变量地址与变量内容 每个变量在内存中都占有一定字节数目的存储单元 变量在内存中所占存储单元的首地址,就称为该变量的地址 变量在内存中所占存储单元中存放的数据,就称为变量的内容 ;如何读写内存中的数据? 1通过变量名访问到内存中的内容 如:printf(“%d”, a); 系统根据变量名a和其地址的对应关系,找到变量名a对应的内存地址,然后再根据该地址值,找到并取出空间上的内容 从用户角度——“直接”访问 从内存角度——“间接”访问 2通过内存单元的地址访问内存单元(速度快、效率高) 将地址存放在一种特殊类型的变量中,把对地址的操作转换为对变量的操作 指针:一个变量的地址称为该变量的指针 指针变量:专门存放地址数据的变量 ;指针:一个变量的地址称为该变量的指针 指针变量:专门存放地址数据的变量 ; 6.1.3 指针变量的定义; 6.1.3 指针变量的定义; 6.1.4 指针变量的初始化和赋值;#include stdio.h void main(void) { int i; int *p1=i; i=8; printf(*p1=%d,i=%d\n,*p1,i); *p1=5; printf(*p1=%d,i=%d\n,*p1,i); }; 6.1.4 指针变量的初始化和赋值; 6.1.4 指针变量的初始化和赋值;指针变量与其它类型变量的对比;与*运算符的关系:互为逆运算; 6.1.4 指针的运算;1 赋值运算 要求:指针在使用前一定要赋值(为指针变量赋一个地址) 指针变量同普通变量一样,使用之前不仅要定义说明, 而且必须赋予具体的值后才能使用,否则指针变量所指向的存储单元是不确定的,可能是系统的重要数据,当向储存着重要数据的位置写入新数据可能会造成系统潜在危险,甚至系统瘫痪 指针变量的内容只能是地址,而不能是数据,必须用相同基类型的地址对其进行赋值 ;1 赋值运算 要求:指针在使用前一定要赋值(为指针变量赋一个地址);2 算术运算 指针可参与的算术运算仅有两种:加和减,即加、减一个整数(包括自增、自减运算) p+n、p-n、p++、p- -、++p、- -p 指针是一个含有基类型特征的地址,它的移动单位是基类型长度 ;2 算术运算 指针可参与的算术运算仅有两种:加和减,即加、减一个整数(包括自增、自减运算) p+n、p-n、p++、p- -、++p、- -p 指针是一个含有基类型特征的地址,它的移动单位是基类型长度 p+1与p++的异同:(p++独立成语句) p+1与p++都指向当前指针所指单元的下一个元素 p+1并不改变当前指针的指向,即p的值并未改变, 而p++相当于p=p+1,即使指针p向下移动一个元素位置 ;3 两指针变量间的运算 要求:必须是指向同一数组的两个指针变量之间 相减运算:求出两者之间的数据个数;3 两指针变量间的运算 要求:必须是指向同一数组的两个指针变量之间 相减运算:求出两者之间的数据个数 关系运算:表示两者所指数组元素间的地址关系 运算结果:0或1 p1==p2 为1 p1、p2指向同一元素 p1p2 为1 p1地址在p2后 p1p2 为1 p1地址在p2前 指针不与非指针量进行比较,仅可与NULL(即0值)进行等或不等的关系运算,判断是否为空指针(应用于:动态内存分配) P == NULL p != NULL ;2010年期末考题;2010年期末考题;6-1 ,6-2 ,6-3;6.2 指针与数组; int a[4], *p=a; /*或p=a[0]*/ p+i和a+i就是a[i]的地址,即它们指向a数组的第i个元素 C规定p+1指向数组的下一个元素(而不是将p值简单地加1) *(p+i)或*(a+i)是取出p+i或a+i所指向的数组元素,即a[i] 指向数组的指针变量也可以带下标,如p[i]与*(p+i)等价 数组元素的几种等价引用形式 a[i] ? *(a+i) ? p[i] ? *(p+i) ;输入输出数组的全部元素;小结:;例6.1

文档评论(0)

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

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

1亿VIP精品文档

相关文档