南京师范大学:《C程序设计》课程教学课件(PPT讲稿)第九章 指针

第九章指针 9.1指针的概念 9.2指针变量 9.3指向数组的指针变量 94指针与字符串 9.5指针与函数 9.6指针数组与多级指针 97命令行参数
第九章 指针 9.1 指针的概念 9.2 指针变量 9.3 指向数组的指针变量 9.4 指针与字符串 9.6 指针数组与多级指针 9.5 指针与函数 9.7 命令行参数

前言 C程序设计中使用指针可以 使程序简洁、紧凑、高效 有效地表示复杂的数据结构 动态分配内存 得到多于一个的函数返回值
➢前言 C程序设计中使用指针可以: – 使程序简洁、紧凑、高效 – 有效地表示复杂的数据结构 – 动态分配内存 – 得到多于一个的函数返回值

91指针的概念 91.1变量与地址 内存中每个字节有一个编号地址 内存 0 程序中:int 2000 2001 float k Q002 编译或函数调用时为其分配内存单元 2003 2005 变量是对程序中数据 存储空间的抽象
9.1.1变量与地址 程序中: int i; float k; 内存中每个字节有一个编号-----地址 …... …... 2000 2001 2002 2005 内存 0 2003 i k 编译或函数调用时为其分配内存单元 变量是对程序中数据 存储空间的抽象 9.1 指针的概念

91.2指针与指针变量 指针:一个变量的地址 指针变量:专门存放变量地址的变量叫 指针 区2000 整型变量i 2001 10 变量的 变量的内容 2002 地址 2003 2004 变量 i pointer 2005 2060 指针变量 2006 指针变变量地址(指针 地址存入 变量变量值 指针变量
…... …... 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 指针:一个变量的地址 指针变量:专门存放变量地址的变量叫~ 2000 指针 指针变量 变量的 变量的内容 地址 指针变量 变量 变量地址(指针) 变量值 指向 地址存入 指针变量 9.1.2指针与指针变量

91.3&与*运算符 含义 两者关系:互为逆运算 含义:取变量含义:取指针所指向变量的内容 理解 单目运算符单目运算符 pointer 1 pointer 优先级:2优先级:2 &i_pointer 2000 10 结合性:自 2000 整型变量i 2001 10 nter=&i=&*i pointer) 2002 is“ ointer=*(&i) 2003 2004 变量ⅰ pointer 2005 206- 指针变量 2006 pointer 指针变量,它的内容是地址量 1 pointer-指针的目标变量,它的内容是数据 & c1 pointer--指针变量占用内存的地址
• 含义 含义: 取变量的地址 单目运算符 优先级: 2 结合性:自右向左 含义: 取指针所指向变量的内容 单目运算符 优先级: 2 结合性:自右向左 两者关系:互为逆运算 理解 …... …... 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 2000 指针变量 i_pointer-----指针变量,它的内容是地址量 *i_pointer----指针的目标变量,它的内容是数据 &i_pointer---指针变量占用内存的地址 2000 10 i_pointer *i_pointer &i_pointer i i_pointer &i &(*i_pointer) i *i_pointer *(&i) i_pointer = &i = &(*i_pointer) i = *i_pointer = *(&i) 9.1.3 &与*运算符

914直接访问与间接访 直接访问:按变量地址存取变量值 间接访问:通过存放变量地址的变量去访问变量 直接访问 2000 整型变量i 2001 20 2002 2003 2004 ←变量 i pointer 200 指针变量 2006 例1 pointer=20; 间接访同
• 直接访问:按变量地址存取变量值 • 间接访问:通过存放变量地址的变量去访问变量 例 i=3; -----直接访问 指针变量 …... …... 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 2000 3 例 *i_pointer=20; -----间接访问 20 9.1.4直接访问与间接访问

例k=i; 直接访问 pointer; 间接访问 例子图解 2000 整型变量 2001 0 2002 整型变量k 2003 2004 变量 i pointer 2005 2066 指针变量 2006
指针变量 …... …... 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 2000 整型变量k 例 k=i; --直接访问 k=*i_pointer; --间接访问 10 例 k=i; k=*i_pointer; 例子图解

9,2指针变量 92.1指针变量与其所指向的变量之间的关系 1 pointer 变量i 1 pointer 2000 3&i 1 pointer pointer ci pointer 指针变量的定义 般形式:[存储类型]数据类型*指针名 例int*pl,* float w 十变量 指 static char name, 算符塑标识符 注意 Int* ipl,*p2;与int*pl,p2; 2、指针变量名是plp2,不是*p1,*p2 3、指针变量只能指向定义时所规定类型的变量 4、指针变量定义后,变量值不确定.应用前必须先赋值
9.2.1指针变量与其所指向的变量之间的关系 指针变量的定义 一般形式: [存储类型] 数据类型 *指针名; 3 变量i 2000 i_pointer *i_pointer i *i_pointer &i i_pointer i=3; *i_pointer=3 3 变量i 2000 i_pointer *i_pointer i *i_pointer &i i_pointer i=3; *i_pointer=3 指针变量本身的存储类型 指针的目标变量的数据类型合法标识符 表示定义指针变量 不是‘*’运算符 例 int *p1,*p2; float *q ; static char *name; 注意: 1、int *p1, *p2; 与 int *p1, p2; 2、指针变量名是p1,p2 ,不是*p1,*p2 3、指针变量只能指向定义时所规定类型的变量 4、指针变量定义后,变量值不确定,应用前必须先赋值 9.2 指针变量

9,22指针变量的初始化 般形式:[存储类型]数据类型*指针名=初始地址值; 例赋给指针变量 变量必须已说明过 类型应一致 例int1; at >p=&i Int q-p, 用已初始化指针变量作初值 例main() static int“p=&i 不能用auto变量的地址 去初始化 static型指针
一般形式:[存储类型] 数据类型 *指针名=初始地址值; 赋给指针变量, 不是赋给目标变量 例 int i; int *p=&i; 变量必须已说明过 类型应一致 例 int *p=&i; int i; 例 int i; int *p=&i; int *q=p; 用已初始化指针变量作初值 例 main( ) { int i; static int *p=&i; .............. } () 不能用auto变量的地址 去初始化static型指针 9.2.2指针变量的初始化

指针变量必须先赋值,再使用 例main() int 1=10 nt 2000 整型变量i printf(%od”,*p) 2001 10 2002 2003 危险! 2004 指针变量p 2005 随枳 例ma 2006 nt p p=&k printf("%d”,*p)
例 main( ) { int i=10; int *p; *p=i; printf(“%d”,*p); } 危险! 例 main( ) { int i=10,k; int *p; p=&k; *p=i; printf(“%d”,*p); } …... …... 2000 2004 2006 2005 整型变量i 10 指针变量p 2001 2002 2003 随机 指针变量必须先赋值,再使用
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 南京师范大学:《C程序设计》课程教学课件(PPT讲稿)第三章 顺序程序结构设计.ppt
- 南京师范大学:《C程序设计》课程教学课件(PPT讲稿)第七章 函数.ppt
- 南京师范大学:《C程序设计》课程教学课件(PPT讲稿)第一章 C语言概论(主讲教师:汪闽).ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第9章 消隐.ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第8章 曲线和曲面.ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第7章 三维变换及三维观察.ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第6章 二维变换及二维观察.ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第5章 基本图形生成算法.ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第4章 造型技术.ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第3章 交互式技术.ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第2章 图形设备.ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第1章 引言(主讲:陆枫).ppt
- 华中科技大学:《计算机图形学基础》课程电子教案(PPT教学课件)第10章 真实感图形绘制.ppt
- 上海理工大学:《电子商务基础与应用》课程PPT教学课件资源(第四版)第一章 认识电子商务.ppt
- 荆州职院:《计算机网络基础》首页.ppt
- 荆州职院:《计算机网络基础》第8章 网络安全.ppt
- 荆州职院:《计算机网络基础》第7章 internet技术.ppt
- 荆州职院:《计算机网络基础》第6章 广域网技术.ppt
- 荆州职院:《计算机网络基础》第5章 网络操作系统.ppt
- 荆州职院:《计算机网络基础》第4章 局域技术.ppt
- 南京师范大学:《C程序设计》课程教学课件(PPT讲稿)第二章 数据类型、运算符号与表达式.ppt
- 南京师范大学:《C程序设计》课程教学课件(PPT讲稿)第五章 循环结构程序设计.ppt
- 南京师范大学:《C程序设计》课程教学课件(PPT讲稿)第八章 预编译命令.ppt
- 南京师范大学:《C程序设计》课程教学课件(PPT讲稿)第六章 数组.ppt
- 南京师范大学:《C程序设计》课程教学课件(PPT讲稿)第十一章 文件.ppt
- 南京师范大学:《C程序设计》课程教学课件(PPT讲稿)第十章 结构体和共用体.ppt
- 南京师范大学:《C程序设计》课程教学课件(PPT讲稿)第四章 选择结构程序设计.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)每章习题.doc
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)每章习题答案与提示.doc
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第十章 图纸布局与打印输出.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第十一章 共享AutoCAD数据和协同设计.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第十二章 创建三维模型.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第十三章 图纸集.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第一章 认识 AutoCAD.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第二章 设置绘图环境.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第三章 创建和编辑二维图形对象(一).ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第四章 创建和编辑二维图形对象(二).ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第五章 对象特性与图层.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第六章 利用绘图辅助工具精确绘图.ppt
- 《AutoCAD 2006中文版标准教程》教学资源(PPT课件)第七章 文字与表格.ppt
