《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 指针

Chap8指针 81寻找保险箱密码 82角色互换 83冒泡排序 84电码加密 85任意个整数求和*
Chap 8 指针 8.1 寻找保险箱密码 8.2 角色互换 8.3 冒泡排序 8.4 电码加密 8.5 任意个整数求和*

本章要点 变量、内存单元和地址之间是什么关系? ■如何定义指针变量,怎样才能使用指针变量? ■什么是指针变量的初始化? ■指针变量的基本运算有哪些?如何使用指针 操作所指向的变量? ■指针作为函数参数的作用是什么? ■如何使用指针实现函数调用返回多个值? ■如何利用指针实现内存的动态分配?
本章要点 ◼ 变量、内存单元和地址之间是什么关系? ◼ 如何定义指针变量,怎样才能使用指针变量? ◼ 什么是指针变量的初始化? ◼ 指针变量的基本运算有哪些?如何使用指针 操作所指向的变量? ◼ 指针作为函数参数的作用是什么? ◼ 如何使用指针实现函数调用返回多个值? ◼ 如何利用指针实现内存的动态分配?

8.1寻找保险箱密码 个关于国安局特工寻找保险箱密码的故事 ■■■ 关键点分析 得到线索:地址为2170的房间内有线索 提示地址:1976 找到目标:地址为1976的房间 取出内容:911
8.1 寻找保险箱密码 一个关于国安局特工寻找保险箱密码的故事… 关键点分析 ◼ 得到线索:地址为2170的房间内有线索 ◼ 提示地址:1976 ◼ 找到目标:地址为1976的房间 ◼ 取出内容:911

81寻找密码的途径分析 密码存放需要一定的存储空间作为存放地,每 个存放地都会有地址 如果知道了存放地的名字,当然能够找到密码。 但并不是每个存储空间都有名字 如果不知道存放地的名字,知道该存放地的地 址也能够取出密码 如果连存放地的地址也不知道,但是有另外 个地方存放了该密码存放地的地址,那么找到 这个地方,就能顺藤摸瓜,间接找到密码
8.1 寻找密码的途径分析 ◼ 密码存放需要一定的存储空间作为存放地,每 个存放地都会有地址 ◼ 如果知道了存放地的名字,当然能够找到密码。 但并不是每个存储空间都有名字 ◼ 如果不知道存放地的名字,知道该存放地的地 址也能够取出密码 ◼ 如果连存放地的地址也不知道,但是有另外一 个地方存放了该密码存放地的地址,那么找到 这个地方,就能顺藤摸瓜,间接找到密码

81密码存放示意图 1976 911 2170 1976 名字 地址 2170 1976 内容 1976 911
8.1 密码存放示意图 1976 911 P 2170 1976 名字 P 地址 2170 1976 内容 1976 911

例8-1利用指针模拟寻找保险箱 密码的过程 If I know the name of the variable i can get i it's value by name: 911 If know the address of the variable 获取密码的两种方法 is: 12ff7C, then I also can get it's value by int main(void) address: 911 int key=911;/*变量key用于存放密码值911*/ int*p addr=NULL;/*变量 p addr是整型指针变量*/ p_addr =&key /将key的地址赋给 p addr* /通过变量key输出密码值* printf(" the key is: %dn", key) /通过变量名key输出密码值 printf("If I know the name of the variable, I can get it's value by name %dIn", key) /通过变量key的地址来输出密码值 printf( if I know the address of the variable is: %x, then I also can get it's value by address: %dn",p addr, *p_addr); return 0:
例8-1 利用指针模拟寻找保险箱 密码的过程 获取密码的两种方法 int main(void) { int key = 911; /* 变量key用于存放密码值911 */ int *p_addr = NULL; /* 变量p_addr是整型指针变量 */ p_addr = &key; /* 将key的地址赋给p_addr*/ /* 通过变量key输出密码值*/ printf("The key is: %d\n", key); /* 通过变量名key输出密码值*/ printf("If I know the name of the variable, I can get it’s value by name: %d\n ", key); /* 通过变量key的地址来输出密码值*/ printf("If I know the address of the variable is: %x, then I also can get it’s value by address: %d\n",p_addr, *p_addr); return 0; } If I know the name of the variable, I can get it’s value by name: 911 If I know the address of the variable is:12ff7c, then I also can get it’s value by address: 911

812地址和指针一指针的概念 内存单元 地址内容变量 直接访问:通过变量名访问 1000 20 1002 intx=20,y=1,z=155; 1004 155 xyz printf(%d°,x;) 间接访问:通过另一个变量访问 把变量的地址放到另一变量中 2000L1000 p 使用时先找到后者 2002 再从中取出前者的地址 地址指针变量
8.1.2 地址和指针-指针的概念 内存单元 地址 内容 变量 int x = 20, y = 1, z = 155; printf("%d", x;) 直接访问:通过变量名访问 间接访问:通过另一个变量访问 把变量的地址放到另一变量中 使用时先找到后者 再从中取出前者的地址 1000 20 x 1002 1 y 1004 155 z 2000 1000 p 2002 地址 指针变量

指针 内存单元 intx=20,y=1,z=155; 地址内容变量 printf"‰d",x) 1000 20 x某个变量的地址 1002 1004 155 指向 2000100p指针变量:存放地址的变量 2002 地址指针变量
指针 内存单元 地址 内容 变量 int x = 20, y = 1, z = 155; printf("%d", x;) 1000 20 x 1002 1 y 1004 155 z 2000 1000 p 2002 地址 指针变量 指针变量:存放地址的变量 某个变量的地址 指向

813指针变量的定义 类型名指针变量名 指针声明符 指针变量所指向的变量的类型 int * ρ是整型指针,指向整型变量 float *fp 印p是浮点型指针,指向浮点型变量 char *cp cp是字符型指针,指向字符型变量
指针变量所指向的变量的类型 int *p; p 是整型指针,指向整型变量 float *fp; fp 是浮点型指针,指向浮点型变量 char *cp; cp 是字符型指针,指向字符型变量 类型名 * 指针变量名 指针声明符 8.1.3 指针变量的定义

指针变量的定义 类型名*指针变量名 int * p 口指针变量名是p,不是*p 口*是指针声明符 int k, *p1, *p2, 等价于: int k: int *p1; int *p2 口定义多个指针变量时,每一个指针变量 前面都必须加上*
指针变量的定义 类型名 * 指针变量名 int * p; 指针变量名是 p,不是*p * 是指针声明符 int k, *p1, *p2; 等价于: int k; int *p1; int *p2; 定义多个指针变量时,每一个指针变量 前面都必须加上*
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 山东大学:《微机原理及单片机接口技术》课程教学资源(PPT课件讲稿)第四章 指令系统及汇编语言程序设计(4.6-4.8).ppt
- 《编译原理与技术》课程教学资源(PPT课件讲稿)自底向上分析.ppt
- 西安交通大学:《物联网技术原理》课程教学资源(PPT课件讲稿)第1章 物联网技术概论(主讲:桂小林).ppt
- 贵州师范学院:《高级语言程序设计 Advanced Programming》课程教学资源(PPT课件讲稿)第7章 函数——模块化设计.ppt
- 计算机问题求解(PPT讲稿)分治法与递归.pptx
- 山东大学:《微机原理及单片机接口技术》课程教学资源(PPT课件讲稿)第三章 计算机系统的组成与工作原理(3.1-3.4).ppt
- 《机器学习及应用》课程教学资源(PPT课件讲稿)贝叶斯网络(Bayesian Network).ppt
- SQL Server权限管理(PPT课件讲稿).ppt
- 四川大学:《计算机系统结构》课程教学资源(PPT课件讲稿)第1章 计算机系统结构基本概念(主讲:倪云竹).ppt
- 计算机的维修(PPT课件讲稿)计算机维修的基本知识与实例.ppt
- 南京大学:《面向对象技术 OOT》课程教学资源(PPT课件讲稿)敏捷软件开发 Agile Software Development.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件讲稿)文件管理(主讲:徐锋).ppt
- 《文献信息检索与利用》课程教学资源(PPT课件)第三章 文献信息检索基本理论.ppt
- 山西管理职业学院:《Excel 教程》课程教学资源(PPT课件讲稿,共九部分).ppt
- 《单片机原理及应用》课程PPT教学课件(C语言版)第1章 单片机基础知识概述.ppt
- 北京航空航天大学:《程序设计语言原理》课程教学资源(PPT课件)第0章 绪论(主讲:吕卫锋)程序语言设计方法学 The Methodology Of Programming Language.ppt
- 《计算机视觉》课程教学资源(PPT课件讲稿)第二章 视觉的基本知识 第二节 视觉物理学特性.pptx
- 中国铁道出版社:《局域网技术与组网工程》课程教学资源(PPT课件讲稿)第6章 Internet.ppt
- 面向服务的业务流程管理(PPT讲稿)Business Process Analysis and Modeling.pptx
- 中国科学技术大学:《网络信息安全 NETWORK SECURITY》课程教学资源(PPT课件讲稿)第三章 局域网安全技术及应用.ppt
- 山西国际商务职业学院:《数据库应用程序设计》课程教学资源(PPT课件)第7章 VFP6程序设计基础.pps
- 《计算机组装维修》课程PPT教学课件(实训教程)第3章 主板.ppt
- 《计算机网络》课程教学大纲(计算机科学与技术、网络工程专业).pdf
- 《操作系统 Operating System》课程教学资源(PPT课件讲稿)概述 Overview.ppt
- 哈尔滨工业大学:《语言信息处理》课程教学资源(PPT课件讲稿)机器翻译 I Machine Translation I(主讲:张宇).ppt
- 中国科学技术大学:《网络信息安全 NETWORK SECURITY》课程教学资源(PPT课件讲稿)UNIX/LINUX 操作系统.ppt
- 北京师范大学现代远程教育:《计算机应用基础》课程教学资源(PPT课件讲稿)第一章 计算机常识.ppt
- 《网络搜索和挖掘关键技术 Web Search and Mining》课程教学资源(PPT讲稿)Lecture 10 Query expansion.ppt
- 《编译原理》课程教学资源(PPT课件讲稿)第五章 类型检查.ppt
- 西安电子科技大学:《微机原理与接口技术》课程教学资源(PPT课件讲稿)第六章 存储器设计.pptx
- 《Computer Networking:A Top Down Approach》英文教材教学资源(PPT课件讲稿,3rd edition)Chapter 5 Link Layer.ppt
- 《计算机应用基础》课程教学资源(PPT课件讲稿)第一章 计算机基础知识.ppt
- 《信息安全与管理》课程教学资源(PPT课件讲稿)第六章 公开密钥设施PKI.ppt
- Data Mining Association Analysis——Basic Concepts and Algorithms Chapter 6 Introduction to Data Mining.ppt
- 《计算机组成原理》课程教学资源(PPT课件讲稿)第五章 存储器层次结构.ppt
- 电子科技大学:《Unix操作系统基础》课程教学资源(PPT课件)第一章 UNIX操作系统概述、第二章 UNIX使用入门.ppt
- 中国水利水电出版社:《单片机原理及应用》课程PPT教学课件(C语言版)第2章 MCS-51单片机基本结构.ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第三章 栈和队列.ppt
- 《网络安全 Network Security》教学资源(PPT讲稿)Topic 3 User Authentication.pptx
- 《C++语言基础教程》课程电子教案(PPT教学课件)教学资源(PPT课件)第2讲 C++语言基础.ppt