- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9讲-数组和指针
int i,*p; p=i; 实验 内容: 实验6-5,7; 实验7-1,2 实验6-2,8; 实验7-4(写实验报告) 一、赋值运算 把一个变量的地址赋给相同数据类型的指针变量 具有相同数据类型的指针变量之间相互赋值 把一个数组的地址赋给相同数据类型的指针变量 二、算术运算 (1)指针与整数的加减运算 值是地址,为从p所指单元向后/前的第n个同类型数据的地址。即:p±n=(p)±数据长度*n (2)指针的自增/自减运算 (3) 两个指针的相减:必须同类型,值是一个整数,为两个地址之间数据的个数:p-q=((p)-(q))/数据长度 三、关系运算 只有指向同一种数据类型的两个指针才能进行关系运算。 值为1或0: pq pq p==q 指针不与非指针量进行比较,但可与0进行等或不等的关系运算,判断p是否为空指针: p==0 或 p!=0 (1)将行数用下标表示,列用指针表示*(b[i]+j) (2)将列数用下标表示,行用指针表示(*(b+I))[j] (3)将行/列都用下标表示,*(*(b+I)+j)) 表示该指针数组是由p[0]、p[1]、p[2]、p[3] 4个指针变量组成,它们都指向int型数据。 p表示该指针数组的存储首地址。 适合用来指向若干个字符串,多用于处理字符串 12 C++语言拥有在运行时获得变量地址和操纵地址的能力,这种可用来操纵地址的变量类型就是指针。指针可以用于数组,用于内存访问,还可作为函数的参数。 必须先定义赋值后才能引用 注意: *表示该变量是指针变量,p 和q是指针变量 数据类型规定的是指针变量指向的存储单元的数据的数据类型 一个指针变量只能指向同一个类型的变量 空指针并不是指存储空间为空的意思,而是NULL字符的ASCII的值为0 空指针不表示任何一种指向,而是表示指针变量的一种状态,在程序中经常作为一种状态标志来使用。 int *p=0:代表变量 //初始化为空指针 注意: 一个指针变量只能指向同一个类型的变量 只能用已经定义了的变量的地址初始化指针变量 不能把一般的整型数据赋给指针变量 指针变量的值可以为0,此时为空指针,不表示任何指向,只是一种状态。 int *px=0; 0不是数值0,而是NULL的ASCII值(空指针作为) * * 2.6 指针的基本概念 ★ 什么是指针?如何理解? ★ 指针变量的定义及初始化 2.6.1 指针的概念 ① 数据在计算机内存的存取是以字节B为存储单位。 int i; float f; 2000 2001 2002 2003 2004 2005 2006 2007 2008 i f 地址:字节的编号 ② 变量地址:变量存储空间的首地址 int i; float f; 首地址: 2000 首地址: 2005 2000 2001 2002 2003 2004 2005 2006 2007 2008 i f 变量地址? int i,*p; i=3; p=i ; 直接访问 访问数据的方式 间接访问 指针变量*p?指向变量的地址 P 2.6.2 指针变量的定义 int *p; double *q; 代表是指针变量 类型说明 和指向的存储单元的数据类型相同 用于存放指向 变量的地址 变量名 指针变量必须先定义赋值后使用 2.6.3 指针变量的初始化 int a=3; int *p; p=a int *p=a int a 用于存放变量的内容 int *a 用于存放变量的地址 2000 3 p *p a 2000 int *p; float *q; p=q; int i; float *p; p=i; int *p; p=100; 指针变量只 存放地址! 一个指针变量不能指向与其类型不同的变量! 我是真的, 你猜对了吗? 应在类型相同的指针变量之间赋值 判断? 2000 3 p *p i 2000 int i=3,*p; P=i; *p=3 P:指针变量,内容是地址 *p:指针变量所指向的变量 内容是数据 运算符:右结合 P= i:取地址 *p=* i :取内容 思考? *p=? *q=? 思考? 输入3,5.4 *p=15 *q=2.4 m a 3 . int a=3; int m=a; m=m+5; 变量的别名 自身没有值 也没有地址值 不占空间 2.7引用 引用特点 引用作为函数的 参数和返回值 二、指针变量的含义 int a=3; int *p; p=a *p=3 //内容 int *p=a int a 用于存
您可能关注的文档
最近下载
- 庭院设计课件 第五章 功能布局与平面设计.pptx VIP
- 2021年Fall AMC 10B真题含答案.pdf VIP
- 2025年辽宁省地矿集团面向校园招聘80人考试备考试题【含答案解析】.pdf VIP
- 九一八事变(课件)小学生主题班会通用版(共22张PPT).pptx VIP
- 屋顶分布式光伏发电施工组织设计.docx VIP
- 小学三年级班主任工作计划安排.doc VIP
- 广州某1200吨超低温金枪鱼冷库制冷系统设计.docx VIP
- 2025年美丽中国全国国家版图知识竞赛题库(附答案).docx VIP
- 中医辩证施护课件.ppt VIP
- Mysql数据库及应用 广东开放大学考试题库答案.doc VIP
文档评论(0)