清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第三版)第10章 指针

清华大学出版社 TSINGHUA UNIVERSITY PRESS 第十章 指针
第十章

清华大学出版社 TSINGHUA UNIVERSITY PRESS §101地址和指针的概念 为了说清楚什么是指针,必须弄清楚数据在内存中是 如何存储的,又是如何读取的。 内存区的每一个字节有一个编号,这就是“地址” 如果在程序中定义了一个变量,在对程序进行编译时 系统就会给这个变量分配内存单元。 按变量地址存取变量值的方式称为“直接访问”方式 例如: pri n tf("%d",i) s canf(" d",&i) k=i+j
§10.1地址和指针的概念 为了说清楚什么是指针,必须弄清楚数据在内存中是 如何存储的,又是如何读取的。 内存区的每一个字节有一个编号,这就是“地址” 。 如果在程序中定义了一个变量,在对程序进行编译时, 系统就会给这个变量分配内存单元。 1、按变量地址存取变量值的方式称为“直接访问”方式 printf(″%d″,i); scanf(″%d″,&i); k=i+j; 例如:

清华大学斯 内存用户数据区 2000 变量i 2002 :369 变量 2004 变量k 2000 变量 pointer

清华大学出版社 另一种存取变量值的方式称为“间接访苘”的方式 即,将变量i的地址存放在另一个变量中 在C语言中,指针是一种特殊的变量,它是存放地址的。 假设我们定义了一个指针变量 i pointer用来存放整型变 量的地址,它被分配地址为(3010)、(3011)的两个字节。 可以通过语句: i pointer=& 将i的地址(2000)存放到 I pointer中。这时, i pointer 的值就是(2000,即变量i所占用单元的起始地址。要 存取变量i的值,可以采用间接方式:先找到存放 的地址”的变量 i pointer,从中取出i的地址(2000 然后到2000、2001字节取出i的值(3)
另一种存取变量值的方式称为“间接访问”的方式。 即,将变量i的地址存放在另一个变量中。 在C语言中,指针是一种特殊的变量,它是存放地址的。 假设我们定义了一个指针变量i_pointer用来存放整型变 量的地址,它被分配地址为(3010)、(3011)的两个字节。 可以通过语句:i_pointer =&i; 将i的地址(2000)存放到i_pointer中。这时, i_pointer 的值就是(2000) ,即变量i所占用单元的起始地址。要 存取变量i的值,可以采用间接方式:先找到存放“i 的地址”的变量i_pointer ,从中取出i的地址(2000), 然后到2000 、 2001字节取出i的值(3)

清华大学出版社 TSINGHUA UNIVERSITY PRESS 2000 a pointer 2000 2000 (b)

清华大学出版社 TSINGHUA UNIVERSITY PRESS 指针和指针变量的定义: 个变量的地址称为该变量的“指针 例如,地址2000是变量i的指针。如果有一个变量专 门用来存放另一变量的地址(即指针),则它称为 指针变量”。上述的 i pointer就是一个指针变量 指针变量的值(即指针变量中存放的值)是地 址(即指针)。请区分“指针”和“指针变量” 这两个概念
一个变量的地址称为该变量的“指针” 。 例如,地址2000是变量i的指针。如果有一个变量专 门用来存放另一变量的地址(即指针),则它称为 “指针变量”。上述的i_pointer就是一个指针变量。 指针和指针变量的定义: 指针变量的值(即指针变量中存放的值)是地 址(即指针)。请区分“指针”和“指针变量” 这两个概念

清华大学出版社 TSINGHUA UNIVERSITY PRESS §102变量的指针和指向变量的指针变量 1 pointer **1 pointer 2000 2000 10.21定义一个指针变量 定义指针变量的一般形式为 基类型指针变量名;
§10.2 变量的指针和指向变量的指针变量 10.2.1 定义一个指针变量 定义指针变量的一般形式为 基类型 *指针变量名;

清华大学出版社 TSINGHUA UNIVERSITY PRESS 下面都是合法的定义: float* pointer_3;∥/ pointer3是指向foat型变量的 指针变量 char* pointer4;〃 pointer4是指向字符型变量的指 针变量 pointer 可以用赋值语句使一个 指针变量得到另一个变 量的地址,从而使它指 向一个该变量。如: pointer 2 pointer 1=8 pointer 2=&
下面都是合法的定义: float *pointer_3; // pointer_3是指向float型变量的 指针变量 char *pointer_4; //pointer_4是指向字符型变量的指 针变量 可以用赋值语句使一个 指针变量得到另一个变 量的地址,从而使它指 向一个该变量。如: pointer_1=&i; pointer_2=&j;

在定义指针变量时要注意两点:s (1)指针变量前面的“*”,表示该变量的类型为指针型 变量。 例:foat* pointer1; 指针变量名是 pointer1,而不是* pointer1。 (2)在定义指针变量时必须指定基类型 需要特别注意的是,只有整型变量的地址才能放到指向 整型变量的指针变量中。下面的赋值是错误的 float a Int*k pointer 1 pointer I=&a *将foat型变量的地址放到指 向整型变量的指针变量中,错误*
在定义指针变量时要注意两点: (1)指针变量前面的“*”,表示该变量的类型为指针型 变量。 例: float *pointer_1; 指针变量名是pointer_1 ,而不是* pointer_1 。 (2) 在定义指针变量时必须指定基类型。 需要特别注意的是,只有整型变量的地址才能放到指向 整型变量的指针变量中。下面的赋值是错误的∶ float a; int * pointer_1; pointer_1=&a; /* 将float型变量的地址放到指 向整型变量的指针变量中,错误 */

大学出 10.2.2指针变量的引用 HUA UNIVERSITY尸RESS 请牢记,指针变量中只能存放地址(指针), 不要将一个整数(或任何其他非地址类型的数据) 赋给一个指针变量 例10.1通过指针变量访问整型变量 #include void main( i int a, b: int *pointer 1,* pointer 2 a=100;b=10; pointer_1=&a;/把变量a的地址赋给 ointer 13/
10.2.2 指针变量的引用 请牢记,指针变量中只能存放地址(指针), 不要将一个整数(或任何其他非地址类型的数据) 赋给一个指针变量。 例10.1 通过指针变量访问整型变量 #include void main ( ) { int a,b; int *pointer_1, *pointer_2; a=100;b=10; pointer_1=&a; /*把变量a的地址赋给 pointer_1 */
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第三版)第9章 预处理.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第三版)第8章 函数.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第三版)第7章 数组.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第三版)第6章 循环.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第三版)第5章 选择.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第三版)第4章 简单程序.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第三版)第3章 数据类型.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第三版)第2章 算法.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第三版)第1章 概述.ppt
- 《BIOS中英文对照》讲义.doc
- 肇庆工商学院:《计算机应用基础》第四章 中文Word 2000的应用.ppt
- 肇庆工商学院:《计算机应用基础》第七章 PowerPoint2000的使用.ppt
- 大连商业学校:《计算机应用基础》第五章 Excel2000的使用.ppt
- 《计算机应用基础》第二章 计算机硬件.ppt
- 《计算机应用基础》第二章 Windows2000操作系统.ppt
- 肇庆工商学院:《计算机应用基础》第八章 INTERNET基础.ppt
- 肇庆工商学院:《计算机应用基础》第一章 计算机基础知识.ppt
- 广东财经大学(广东商学院):《计算机应用信息系统》课程电子教案(PPT教学课件)第7、8章 面向对象程序设计.ppt
- 广东财经大学(广东商学院):《计算机应用信息系统》课程电子教案(PPT教学课件)第6章 结构化程序设计.ppt
- 广东财经大学(广东商学院):《计算机应用信息系统》课程电子教案(PPT教学课件)第5章 结构化查询语言SQL.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第三版)第11章 结构体.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第三版)第12章 位运算.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第三版)第13章 文件.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第三版)第14章 常见错误.ppt
- 《软件测试文档大全》上海证券交易所第三代监察系统市场回放及交易分析测试数据.xls
- 《软件测试文档大全》上海证券交易所第三代监察系统业务管理测试用例.xls
- 《软件测试文档大全》上海证券交易所第三代监察系统预警执行和展示测试用例.xls
- 《软件测试文档大全》上海证券交易所第三代监察系统配置与审核测试用例.xls
- 《软件测试文档大全》测试计划模板.xls
- 《软件测试文档大全》测试大纲模板.xls
- 《软件测试文档大全》测试用例模板.xls
- 《软件测试文档大全》测试问题卡模板.xls
- 《软件测试文档大全》测试总结报告模板.xls
- 《软件测试文档大全》性能测试报告模板.xls
- 《软件测试文档大全》测试用例大全.xls
- 华中科技大学:《C语言程序设计》第1章 引论.ppt
- 华中科技大学:《C语言程序设计》第2章 作业.ppt
- 华中科技大学:《C语言程序设计》第2章(2-1) 基本数据类型.ppt
- 华中科技大学:《C语言程序设计》第2章(2-3-5) 位运算.ppt
- 华中科技大学:《C语言程序设计》第2章(2-3-7) 赋值运算.ppt