- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章指针1
第8章指针 8.1 指针的基本概念 内存单元与地址 如何存取变量中的数据? 直接访问(实体名) 普通变量 a,b,c —— a ,b ,c 数组 d[3] —— d ,d[0],d[1],d[2] char x[3][4] —— x[0]、x[1]、x[2] 函数 max( ) —— max(函数名) “入口地址” 取地址运算符(适用于普通变量或数组元素) 间接访问(指针) 通过指针找到要访问的变量,再对变量进行引用。首先一个指针变量来存放变量的地址,再按指针变量中的地址值找到要访问的变量。 适合于地址运算(加减等) 8.1.2 指针变量 存放“指针”(地址)的特殊变量。不同类型的对象其指针类型也不同。 1、 定义及初始化: 类型标识符 *变量名 如 int a, *p1=a; //定义指向整型变量a的指针 char b, *p2=b; //定义指向字符型变量b的指针 float data[10], *p3=data; //定义指向浮点型数组c的指针 2、 指针变量的引用 :取变量、数组元素地址运算符 *:指针运算符(间接访问运算符) 例如: int x=8, *px; p=x; //将x的地址赋给px(使px指向x) *p=10;//将10赋给px所指的变量x。 先看个例子: main( ) { int a,*pa; float b,*pb; a=10;b=1.5; pa=a; pb=b; printf(%d,%f\n”,a,b); printf(%d,%f\n”,*pa,*pb); } 要求从大到小输出a,b。 main() {int a,b,*p,*pa,*pb; a=3;b=6; pa=a; pb=b; if(ab) { p=pa; pa=pb; pb=p;} printf(%d%d\n,a,b); printf(%d%d\n,*pa,*pb); } 注意点: 1、指针变量初始化与指针变量赋值在表示方 法上的区别。 int x,*p=x; 与int x,*p; p=x; 2、悬挂指针:指针变量值不确定的指针 int *p; 则*p=2345 不可执行 3、指针变量中只能存储地址。 int x, *p, *q; p=2000; //错误 q=x; //正确 8.1.3 指针运算 1、指针之间的赋值运算。 float x, y, *pf=x; //初始化pf为变量x的值 char ch, *pch=ch; //初始化pch为变量ch的值 int m,n,*pi=m; //初始化pi为变量m的值 2、指针与整数的加减运算。 p+n: 使指针后移n个对象,指向一个新对象; p-n : 使指针前移n个对象,指向一个新对象。 例如: int x[4]={1,2,3,4} , *px; char a[4]={‘A’,’B’,’C’,’D’} ,*pa; px=x; pa=a; //使px指向x[0]; pa指向a[0] px=px+1; //使px指向x[1] pa=pa+3; //使pa指向a[3] 3、指针相减运算。 如果指在同一数组元素上的两个指针相减,其绝对值为两指针相距元素的个数。 4、指针之间的关系运算。 可以判断指针是否指在同一数组或同一元素上。 8.1.4 数组指针作为函数的参数 编写swap函数,交换两个变量的值 8.2 指针与一维数组 8.2.1 一维数组元素表示法 1. 下标表示法和指针表示法 若 int a[6]; 则数组a的第i个元素的表示方法: 下标表示法 - a[i] 指针表示法 - *(a+i) 2. 用指针变量引用一维数组 *p++等价于*(p++),其作用是先得到p指向变量的值(即*p),然后再使p+1→p *(p++)与*(++p
您可能关注的文档
最近下载
- 深度学习完整全套教案PPT教学电子课件.pptx VIP
- 工程施工合同(通用版).docx VIP
- 松下panasonic FX-502传感器使用说明书.pdf VIP
- 20202021西安高新逸翠园学校小学数学小升初一模试题(附答案).pdf VIP
- 电子课件-数控加工工艺学(第四版).pptx VIP
- 2025年济南历下城市发展集团有限公司社会招聘(23人)考试备考试题及答案解析.docx VIP
- 高中数学中与曲率有关问题的研究.pdf VIP
- 深度学习——原理、模型与实践PPT全套完整教学课件.pptx
- 2025年安全员A证考试题库及答案.pdf
- 课程思政领航课《财务会计》项目三任务3:应收款项的减值.pptx VIP
文档评论(0)