《C语言》课程教学课件(PPT讲稿,课堂课件)C7

第七章指针 §指针为函数提供修改变量值的手段 §指针为C的动态内存分配系统提供支持 §指针为动态数据结构(如例链表、队列、二叉树等) 提供支持 §指针可以改善某些子程序的效率
第七章 指针 §指针为函数提供修改变量值的手段 §指针为C的动态内存分配系统提供支持 §指针为动态数据结构(如例链表、队列、二叉树等) 提供支持 §指针可以改善某些子程序的效率

关于指针的原则 §学习原则 ★一定要学会 ★其实通常的应用很简单 冬与使用变量几乎无异 §使用原则 ★永远要清楚每个指针指向了哪里 ★永远要清楚指针指向的位置是什么
§学习原则 一定要学会 其实通常的应用很简单 ❖与使用变量几乎无异 §使用原则 永远要清楚每个指针指向了哪里 永远要清楚指针指向的位置是什么 关于指针的原则

§7.1变量的地址和指针 内存中每个字节有一个编号-地址 内存 程序中:inti, : 2000 2001 float k; Q002 编译或函数调用时为其分配内存单元 2003 2005
§7.1 变量的地址和指针 程序中: int i; float k; 内存中每个字节有一个编号-地址 . . 2000 2001 2002 2005 内存 0 2003 i k 编译或函数调用时为其分配内存单元

§7.1变量的地址和指针 指针:一个变量的地址 指针变量:专门存放变量地址的变量叫 指针 2000 整型变量i 10 变量的地址 变量的内容 2008 ←一变量i pointer .-0.000- 指针变量 变量地址(指针) 指向 地址存入 变量 变量值 指针变量
. . 2000 2008 . 整型变量i 10 变量i_pointer . 指针:一个变量的地址 指针变量:专门存放变量地址的变量叫~ 2000 指针 指针变量 变量的地址 变量的内容 指针变量 变量 变量地址(指针) 变量值 指向 地址存入 指针变量 §7.1 变量的地址和指针

§7.2变量的间接引用 ★&与*运算符 含义:取变具盒义:取指针所指向变量的内容 单目运算量逶算符 为逆运算 优先级:必理熊先级:2 结合性:自右结合 2000 整型变量i 10 2008 一变量i pointer -2000 指针变量 1 pointer 指针变量,它的内容是地址量 *i pointer 指针的目标变量,它的内容是数据 &ipointer-指针变量占用内存的地址
&与*运算符 ❖含义 含义: 取变量的地址 单目运算符 优先级: 2 结合性:自右向左 含义: 取指针所指向变量的内容 单目运算符 优先级: 2 结合性:自右向左 ❖两者关系:互为逆运算 ❖理解 . . 2000 2008 . 整型变量i 10 变量i_pointer . 2000 指针变量 i_pointer-指针变量,它的内容是地址量 *i_pointer-指针的目标变量,它的内容是数据 &i_pointer-指针变量占用内存的地址 §7.2 变量的间接引用

★指针变量与其所指向的变量之间的关系 1 pointer 指针变量,它的内容是地址量 *i pointer 指针的目标变量,它的内容是数据 &i pointer-指针变量占用内存的地址 i pointer 变量i i*i pointer 2000 3 &ii pointer *i pointer i=3;*i pointer=3
i_pointer-指针变量,它的内容是地址量 *i_pointer-指针的目标变量,它的内容是数据 &i_pointer-指针变量占用内存的地址 指针变量与其所指向的变量之间的关系 3 变量i 2000 i_pointer *i_pointer i *i_pointer &i i_pointer i=3; *i_pointer=3

★直接访问与间接访问 ?直接访问:按变量地址存取变量值 间接访问:通过存放变量地址的变量去访问变量 例 i=3; 直接访问 2000 整型变量i 20 2008 ←变量i pointer 2000 指针变量 例 *i pointer=20; 间接访问
直接访问与间接访问 ❖直接访问:按变量地址存取变量值 ❖间接访问:通过存放变量地址的变量去访问变量 例 i=3; -直接访问 指针变量 . . 2000 2008 . 整型变量i 10 变量i_pointer . 2000 3 例 *i_pointer=20; -间接访问 20

指针变量的定义 一般形式: 「存储类型] 数据类型*指针名; int *pl*p2 铸示定义指针变量 指计变量sta cF厢是*nae运箅苻 型 标识符 注意: 1、int *p1,*p2;与 int *p1,p2; 2、指针变量名是pl,p2,不是*pl,p2 3、指针变量只能指向定义时所规定类型的变量 4、指针变量定义后,变量值不确定,应用前必须先赋值
指针变量的定义 ❖一般形式: [存储类型] 数据类型 *指针名; 合法标识符 指针变量本身的存储类型 指针的目标变量的数据类型 表示定义指针变量 不是‘*’运算符 例 int *p1,*p2; float *q ; static char *name; 注意: 1、int *p1, *p2; 与 int *p1, p2; 2、指针变量名是p1,p2 ,不是*p1,*p2 3、指针变量只能指向定义时所规定类型的变量 4、指针变量定义后,变量值不确定,应用前必须先赋值

★指针变量的初始化 一般形式:[存储类型]数据类型*指针名=初始地址值; 例 int i; 赋给指针变量 int *p=&i; 变量必须已说明过 类型应一致 例 int i; 例 int *n&p=&i; int i;int *q-p; 用已初始化指针变量作初值 p、q指向同一变量
指针变量的初始化 一般形式:[存储类型] 数据类型 *指针名=初始地址值; 赋给指针变量, 不是赋给目标变量 例 int i; int *p=&i; 变量必须已说明过 类型应一致 例 int *p=&i; int i; 例 int i; int *p=&i; int *q=p; 用已初始化指针变量作初值 p、q指向同一变量

查错: 指针变量必须先赋值,再使用 例 main( { int i=10; int *p; 2000 整型变量i *p=i; 10 printfd"p); 危险! 2008 ←一指针变量p 随机子 例 main( N int i=10; int *p, p=&i; printf%d"p);
例 main( ) { int i=10; int *p; *p=i; printf(“%d”,*p); } 危险! 例 main( ) { int i=10; int *p; p=&i; printf(“%d”,*p); } 指针变量必须先赋值,再使用 . . 2000 2008 . 整型变量i 10 指针变量p . 随机 查错:
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言》课程教学课件(PPT讲稿,课堂课件)C8.ppt
- 《C语言》课程教学课件(PPT讲稿,课堂课件)C9.ppt
- 《C语言》课程教学课件(PPT讲稿,课堂课件)C10.ppt
- 《C语言》课程教学课件(PPT讲稿,课堂课件)C11.ppt
- 《C语言》课程教学课件(PPT讲稿,课堂课件)C12.ppt
- 《C语言》课程教学课件(PPT讲稿,课堂课件)C13-14.ppt
- 《C语言》课程教学课件(PPT讲稿)第1章 引论.ppt
- 《C语言》课程教学课件(PPT讲稿)第2章 基本的数据与运算.ppt
- 《C语言》课程教学课件(PPT讲稿)第3章 顺序程序设计.ppt
- 《C语言》课程教学课件(PPT讲稿)第4章 选择结构程序设计.ppt
- 《C语言》课程教学课件(PPT讲稿)第5章 循环结构程序设计.ppt
- 《C语言》课程教学课件(PPT讲稿)第5章 循环补充习题.ppt
- 《C语言》课程教学课件(PPT讲稿)第6章 数组.ppt
- 《C语言》课程教学课件(PPT讲稿)第7章 指针.ppt
- 《C语言》课程教学课件(PPT讲稿)第8章 字符串处理.ppt
- 《C语言》课程教学课件(PPT讲稿)第9章 函数.ppt
- 《C语言》课程教学课件(PPT讲稿)第10章 函数进一步讨论.ppt
- 《C语言》课程教学课件(PPT讲稿)第11章 编译预处理命令.ppt
- 《C语言》课程教学课件(PPT讲稿)第12章 结构体.ppt
- 《C语言》课程教学课件(PPT讲稿)第14章 文件.ppt
- 《C语言》课程教学课件(PPT讲稿,课堂课件)C6.ppt
- 《C语言》课程教学课件(PPT讲稿,课堂课件)C5-2.ppt
- 《C语言》课程教学课件(PPT讲稿,课堂课件)C5-1.ppt
- 《C语言》课程教学课件(PPT讲稿,课堂课件)C4.ppt
- 《C语言》课程教学课件(PPT讲稿,课堂课件)C3.ppt
- 《C语言》课程教学课件(PPT讲稿,课堂课件)C2.ppt
- 《C语言》课程教学课件(PPT讲稿,课堂课件)C1.ppt
- 《C语言》课程教学资源_二级C语言复习资料_二级公共基础知识参考资料课件.ppt
- 《C语言》课程教学资源(复习资料)计算机二级C语言上机题库100套参考(含答案).doc
- 《C语言》课程教学资源(复习资料)二级C语言选择题题库参考(带答案版).doc
- 《编译原理》课程教学课件(PPT讲稿)chap10 目标代码生成.ppt
- 《编译原理》课程教学课件(PPT讲稿)chap9 优化.ppt
- 《编译原理》课程教学课件(PPT讲稿)chap8 运行时存储空间组织与管理.ppt
- 《编译原理》课程教学课件(PPT讲稿)chap7 语法制导翻译和中间代码生成.ppt
- 《编译原理》课程教学课件(PPT讲稿)chp 6 LR分析.ppt
- 《编译原理》课程教学课件(PPT讲稿)chp5 自底向上优先分析.ppt
- 《编译原理》课程教学课件(PPT讲稿)chp4 自顶向下语法分析.ppt
- 《编译原理》课程教学课件(PPT讲稿)chap 3 词法分析.ppt
- 《编译原理》课程教学课件(PPT讲稿)第二章 文法与语言.ppt
- 《编译原理》课程教学课件(PPT讲稿)第一章 绪论 Principles of Compiler.ppt
