- 1、本文档共66页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内容提要 指针的概念; 难点:对指针数据类型的理解 数组的下标法引用和指针法引用; 难点:二维数组的地址和指针概念 利用字符指针存取字符串; 难点:字符数组和字符指针的区别与联系 指针数组应用; 难点:指向数组的指针与指针数组的区别 带参数的main函数; 动态内存分配函数及其应用; 难点:一维、二维动态数组的实现 动态数据结构 为什么引入指针的概念 指针为函数提供修改变量值的手段 指针为C的动态内存分配系统提供支持 指针为动态数据结构(如例链表、队列、二叉树等)提供支持 指针可以改善某些子程序的效率 内存(Random Access Memory)地址(Address) 计算机内的存储部件,所有指令和数据都保存在内存内 速度快,但是掉电即失 可以随机访问 只要指名要访问的内存单元的地址,就可以立即访问到该单元 地址是一个无符号整数,其字长一般与主机相同 内存中的每个字节都有唯一的一个地址 地址按字节编号,按类型分配空间 寻址方式 如何读写内存中的数据? 通过变量的地址访问变量所在的存储单元 两种寻址方式 直接(寻址)访问 直接按变量地址来存取变量内容的访问方式 间接(寻址)访问 通过指针变量来间接存取它所指向的变量的访问方式 关于指针的原则 学习原则 一定要学会 其实通常的应用很简单 与使用变量几乎无异 使用原则 永远要清楚每个指针指向了哪里 永远要清楚指针指向的位置是什么 指针(Pointer)的概念 指针也是一种数据类型 指针变量 具有指针类型的变量,专门存放地址数据的变量 变量的指针 变量的地址 如何定义指针变量? 定义指针变量 int *p; 定义了一个指针变量p,简称指针p p是变量,int*是类型 p里保存一个地址。此时这个地址是哪呢(p指向哪呢)? 指针变量初始化 p = a; *p就像普通的变量一样使用,其值是p指向的内存的内容(在上例和a等价,但寻址方式不同) p可以动态(任意)地指向不同内存,从而使*p代表不同的变量 int i,*p; p=i; 与*操作符 用来取变量的地址 int i, *p;p = i; int *p, a[10];p = a; int *p, a[10];p = a[0]; int *p, a[10];p = a[5]; *用来取指针指向地址的内容 int i, *p;p = i;*p = 0; int *p, a[10];p = a;*p = 0; int *p, a[10];p = a[0];*p = 0; int *p, a[10];p = a[5];*p = 0; 指针的指向 指针指向非其定义时声明的数据类型,将引起warning void*类型的指针可以指向任意类型的变量 指针在初始化时一般int *p=NULL; NULL表示空指针,即无效指针 但它只是逻辑上无效,并不是真正地无效 如果指针指向一个非你控制的内存空间,并对该空间进行访问,将可能造成危险 指针变量与其它类型变量的对比 指针运算(1/4) 算术运算 int *p, a[10]; p = a; p++; /*p的值增加多少?*/ 指针的加减运算是以其指向的类型的字长为单位的 指针运算(2/4) int *p, *q, a[10];p = a;q = a[5]; q - p q = p + 3; 指针运算不能乱算 一般只进行指针和整数的加减运算,同类型指针之间的减法运算 其它运算,比如乘法、除法、浮点运算、指针之间的加法等,并无意义,所以也不支持 指针运算(3/4) 关系运算 只有指向同一种数据类型的两个指针才能进行关系运算。 值为1或0 p q p q p == q 指针不与非指针量进行比较,但可与NULL(即0值)进行等或不等的关系运算 判断p是否为空指针 P == NULL p != NULL 指针运算(4/4) 赋值运算 指针在使用前一定要赋值 为指针变量赋的值必须是一个地址 指针与函数 指针既然是数据类型,自然可以做函数的参数和返回值的类型 指针做参数的经典例子: 两数的互换 例 1:编写函数实现两数的互换 void Swap(int x,int y) { int temp; temp = x; x = y; y = temp; } 简单变量作函数参数 指针变量作函数参数 swap函数的几种错误形式(1/3) 参数单向传递 void Swap(int x, int y) { int temp; temp = x; /*x,y为内部变量*/ x = y; y = temp; } swap函数的几种错误形式(2/3) 参数单向传递 void Sw
您可能关注的文档
- U盘提示未格式化解决方法.ppt
- U盘中文件不能显示解决方法.ppt
- VC++ 深入详解第二章.ppt
- VC++第一章.ppt
- VC++语言基础之一.ppt
- VELOG PMP方案.ppt
- VerilogHDL实验内容.ppt
- Visual Fortran90第8章.ppt
- WCB水冷却盘式刹车常见故障分析和维修.ppt
- webinfoDB设计简介.ppt
- 国家地理写作(Great Writing L2)Unit 10精品课件.pptx
- 2025铁门关职业技术学院单招《职业适应性测试》考前冲刺试卷含答案详解【综合卷】.docx
- 2024-2025学年度济宁职业技术学院单招《职业适应性测试》考前冲刺练习含答案详解【模拟题】.docx
- 2024年郑州电子信息职业技术学院单招《职业适应性测试》过关检测试卷及参考答案详解(黄金题型).docx
- 2025上海立达学院单招《职业适应性测试》考试黑钻押题附参考答案详解【达标题】.docx
- 南昌影视传播职业学院单招《语文》通关题库精华版附答案详解.docx
- 大班健康:受伤了怎么办教案.pptx
- 治安处罚法培训(1).pptx
- 政治教师培训.pptx
- 法院司法礼仪培训.pptx
最近下载
- Unit1《实用商务英语写作教程》作者董晓波—教学课件.ppt VIP
- 中西医结合诊所规章制度大全.docx VIP
- (2025年)抗菌药物临床应用知识培训考试题库(附答案).docx VIP
- DLT 5044-2014 电力工程直流电源系统设计技术规程.docx
- 《联合国教科文:教师人工智能能力框架》--中文版.docx
- OpenHarmony应用开发认证考试题库大全-中(多选题汇总).docx
- 山东省济南市历城区2023-2024学年四年级下学期期末考试数学试题 附答案.pdf VIP
- 机封培训课件.pptx VIP
- 2023年7月黑龙江省普通高中学业水平合格性考试物理真题试卷含答案.docx VIP
- 中外新闻传播史考题及答案.pdf VIP
文档评论(0)