《C语言》课程资源_C语言_教学课件_26——指针——基础知识

程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501
程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501

第9章 指针
第 9 章 指 针 2

内存与地址 ①内存是以字节为基本单位的一片连续的存储单元。内存读 写速度快,但是掉电即失(挥发性)。 ② 内存可以随机访问:只要指明要访问的内存单元的地址, 就可以立即访问到该内存单元。 ③内存单元的编号-内存地址号:是一个无符号整数(习惯用 16进制数表示),不同的编号表示不同的内存位置。内存 的每个字节空间都有唯一的一个地址。 ④程序的所有活动的指令和数据都保存在内存内。程序运行 时可以根据内存单元的编号准确地找到内存空间位置,并 对该空间存储的内容进行读写。 3
① 内存是以字节为基本单位的一片连续的存储单元。内存读 写速度快,但是掉电即失(挥发性)。 ② 内存可以随机访问:只要指明要访问的内存单元的地址, 就可以立即访问到该内存单元。 ③ 内存单元的编号-内存地址号:是一个无符号整数(习惯用 16进制数表示),不同的编号表示不同的内存位置。内存 的每个字节空间都有唯一的一个地址。 ④ 程序的所有活动的指令和数据都保存在内存内。程序运行 时可以根据内存单元的编号准确地找到内存空间位置,并 对该空间存储的内容进行读写。 内存与地址 3

案例程序只能使用自己申请的空间 ① #include ② int main() ③{ 239 ④ int i,a[3]; 235377872 ⑤ for(i=0;i<=3;i++) ⑥ {scanf("%d",&a叮);printf(("%d",a[);} ⑦ return 0; ⑧} 420
案例-程序只能使用自己申请的空间 4/20 ① #include ② int main() ③ { ④ int i,a[3]; ⑤ for ( i=0;i<=3;i++) ⑥ { scanf("%d",&a[i]); printf("%d ",a[i]); } ⑦ return 0; ⑧ }

本章知识点 9.1地址和指针 9.2指针变量 9.3指向数组的指针变量 9.4函数指针变量 9.5返回指针值的函数 9.6指针数组和指向指针的指针 9.7小结 恩
本章知识点 9.1 地址和指针 9.2 指针变量 9.3 指向数组的指针变量 9.4 函数指针变量 9.5 返回指针值的函数 9.6 指针数组和指向指针的指针 9.7 小结 5

9.1.1变量、数组、函数与地址 >变量、数组与函数在内存自己的地址-通过地址来存取数据或指令的。 >函数定义后,该函数名对应了内存中某一段连续存储单元的起始地址, 该地址开始的区域里依次存放着构成本函数指令语句序列。 >不同的函数名对应了不同的起始地址,所获取的指令语句序列是不同的。 2000H., 1000H. 整型 3000H 变量x 2004H 短整型 西 36 变量 整型 数 数组 代 3024H 码 (a变量地址 b数组地址 (c函数地址 图9.1·变量、数组、函嫩的内存地址与表示
9.1.1 变量、数组、函数与地址 ➢ 变量、数组与函数在内存自己的地址-通过地址来存取数据或指令的。 ➢ 函数定义后,该函数名对应了内存中某一段连续存储单元的起始地址, 该地址开始的区域里依次存放着构成本函数指令语句序列。 ➢ 不同的函数名对应了不同的起始地址,所获取的指令语句序列是不同的

9.1.2变量的地址、变量的值 ①每个变量占用一段内存单元,变量的值放在该内存单元中。 ② 变量的地址:系统分配给变量的内存单元的起始地址一旦 确定之后不能修改。 ③变量的值:系统分配给变量的内存单元中的数据-程序执行 过程中可以修改。 ④说明:系统为不同类型的变量分配的空间大小也不同。 ① int整型变量一4个字节。 ② double双精度型变量一8个字节。 ③ char字符型变量一1个字节
① 每个变量占用一段内存单元,变量的值放在该内存单元中。 ② 变量的地址:系统分配给变量的内存单元的起始地址-一旦 确定之后不能修改。 ③ 变量的值:系统分配给变量的内存单元中的数据-程序执行 过程中可以修改。 ④ 说明:系统为不同类型的变量分配的空间大小也不同。 ① int整型变量——4个字节。 ② double双精度型变量——8个字节。 ③ char字符型变量——1个字节。 7 9.1.2 变量的地址、变量的值

9.2指针变量(定义、引用、作函数参数)-P179 >指针变量是一种特殊的变量一存放另一个变量的地址 (指向另一个变量) 9.2.1指针变量的定义 类型说明符 指针变量名; 指针变量所指向 变量的数据类型 米表示定义指针变量, 合法标识符 不是米乘法运算符 注意1:指针变量必须先定义后使用。 例1: ① int *p1,*p2; W定义指向int型变量的指针变量p1、p2 ② double *p3; ∥定义指向double型变量的指针变量p3 ③ char *p4; ∥定义指向char型变量的指针变量p4 注意2:指针变量只能指向它定义时约定的类型的变量。 8
9.2.1 指针变量的定义 注意1:指针变量必须先定义后使用。 例1: ① int *p1, *p2; //定义指向int型变量的指针变量p1、p2 ② double *p3; //定义指向double型变量的指针变量p3 ③ char *p4; //定义指向char型变量的指针变量p4 注意2:指针变量只能指向它定义时约定的类型的变量。 类型说明符 *指针变量名; *表示定义指针变量, 合法标识符 不是 * 乘法运算符 指针变量所指向 变量的数据类型 8 9.2 指针变量 (定义、引用、作函数参数)- P179 ➢ 指针变量是一种特殊的变量—存放另一个变量的地址 -(指向另一个变量)

9.2.2指针变量的引用 1、指针变量常用的运算符(&、 &-一取变量的地址 一取指针所指向变量的内容 2000 10 ←整型变量m 2000 10 2001 2004 2000 2002 2003 2004 2000 k-变量p 3888 指针变量 ① &m-变量m的地址(2000) ② p-指针变量,p的值是地址值(2000) ③ *p-指针p所指向的变量m,*p的值是m的值-数据10。 ④ &p-指针变量p自己占用内存的地址(2004)0 9
1、指针变量常用的运算符 ( &、 *) &- 取变量的地址 *-取指针所指向变量的内容 . . 2000 2004 2006 2005 10 整型变量m 变量 p 2001 2002 2003 2000 指针变量 ① &m - 变量m的地址(2000) ② p -指针变量,p的值是地址值(2000)。 ③ *p -指针p所指向的变量m,*p的值是m的值-数据10 。 ④ &p -指针变量p自己占用内存的地址(2004)。 9 9.2.2 指针变量的引用

2、指针变量的赋值方式: 1)指针变量定义时初始化赋值: 例1:inta,*p=&a;/指针变量p的初值是变量a的地址 注意1:a的声明一定要在p的声明之前。 注意2:int*p=NULL;/p不指向任何内存位置。 ∥NULL是标准库里定义的一个符号常量,值为0 例2: int m; int *p=&m;p的初值是&m-m的地址 int *q=p; /∥g的初值是p的值&m一m的地址 注意3:使用未初始化的指针变量是非常危险的。 ①int*p; ②*p=100;∥因为p存的是随机数,随机数表示的地址是否有效???? ∥结果无法预测!!
2、指针变量的赋值方式: 1)指针变量定义时初始化赋值: 例1:int a,*p=&a; //指针变量p的初值是变量a的地址 注意1:a的声明一定要在p的声明之前。 注意2:int *p=NULL; //p不指向任何内存位置。 // NULL是标准库里定义的一个符号常量,值为0 例2: int m; int *p = &m; //p的初值是&m –- m 的地址 int *q = p; //q 的初值是p的值&m—m 的地址 注意3:使用未初始化的指针变量是非常危险的。 ① int *p; ② *p=100; // 因为p存的是随机数,随机数表示的地址是否有效???? // 结果无法预测!!!
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言》课程资源_C语言_教学课件_25——程序设计基础1——数组——数组与函数.ppt
- 《C语言》课程资源_C语言_教学课件_24——程序设计基础1——数组——二维数组.ppt
- 《C语言》课程资源_C语言_教学课件_23——程序设计基础1——第8章——数组——一维数组——移位删除.ppt
- 《C语言》课程资源_C语言_教学课件_22——程序设计基础1——第8章——数组——一维数组——查找逆置.ppt
- 《C语言》课程资源_C语言_教学课件_21——一维数组——排序应用.ppt
- 《C语言》课程资源_C语言_教学课件_20——程序设计基础1——数组——一维数组基本操作.ppt
- 《C语言》课程资源_C语言_教学课件_19——函数——随机数函数的应用.ppt
- 《C语言》课程资源_C语言_教学课件_18——函数——变量的作用域.ppt
- 《C语言》课程资源_C语言_教学课件_17——第7章 函数嵌套与递归.ppt
- 《C语言》课程资源_C语言_教学课件_16——函数的基本操作.ppt
- 《C语言》课程资源_课件ppt_8章字符串处理.ppt
- 《C语言》课程资源_课件ppt_7指针.ppt
- 《C语言》课程资源_课件ppt_6数组.ppt
- 《C语言》课程资源_课件ppt_5循环程序设计.ppt
- 《C语言》课程资源_课件ppt_4选择.ppt
- 《C语言》课程资源_课件ppt_2、3章.ppt
- 《C语言》课程资源_课件ppt_1章 C语言概述.ppt
- 《C语言》课程资源_课件ppt_13章位运算.ppt
- 《C语言》课程资源_课件ppt_12章结构体01.ppt
- 《C语言》课程资源_课件ppt_10章函数进一步讨论.ppt
- 《C语言》课程资源_C语言_教学课件_27——指针——指向数组.ppt
- 《C语言》课程资源_C语言_教学课件_28——字符数组——基本知识.ppt
- 《C语言》课程资源_C语言_教学课件_30——字符串数组与字符串函数.ppt
- 《C语言》课程资源_C语言_教学课件_理解——29——字符数组与指针.ppt
- 《C语言》课程资源_C语言_教学课件_01——C语言-导论、ACM操作方法、实验操作方法.ppt
- 《C语言》课程资源_C语言_教学课件_02——算法基础.ppt
- 《C语言》课程资源_C语言_教学课件_03——数据在计算机中的表示.ppt
- 《C语言》课程资源_C语言_教学课件_04——C语言——数据类型.ppt
- 《C语言》课程资源_C语言_教学课件_05——C语言的基本数据运算.ppt
- 《C语言》课程资源_C语言_教学课件_06——顺序结构程序设计.ppt
- 《C语言》课程资源_C语言_教学课件_07——C语言——输入输出格式控制.ppt
- 《C语言》课程资源_C语言_教学课件_08——C语言——关系运算、逻辑运算、if-分支结构.ppt
- 《C语言》课程资源_C语言_教学课件_09——C语言——switch开关语句的应用.ppt
- 《C语言》课程资源_C语言_教学课件_10——循环结构——-while循环.ppt
- 《C语言》课程资源_C语言_教学课件_11-do——while循环.ppt
- 《C语言》课程资源_C语言_教学课件_12——逗号表达式的运用.ppt
- 《C语言》课程资源_C语言_教学课件_13——for——循环语句的使用.ppt
- 《C语言》课程资源_C语言_教学课件_14——程序设计基础1——-循环嵌套.ppt
- 《C语言》课程资源_C语言_教学课件_15——程序设计基础1——第6章——break——continue.ppt
- 山东理工大学:《JAVA语言程序设计》课程教学课件(PPT讲稿)01(第一章 JAVA语言入门).ppt
