《善于使用指针》PPT课件.ppt
《《善于使用指针》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《善于使用指针》PPT课件.ppt(54页珍藏版)》请在三一办公上搜索。
1、8.1 什么是指针8.2 指针变量8.3 通过指针引用数组8.4 通过指针引用字符串8.5 提高部分,第8章 善于使用指针,P210,8.1 什么是指针,在定义变量时,系统就给这个变量分配内存单元。编译系统根据程序中定义的变量类型,分配一定长度的空间。,P210,8.1 什么是指针,内存区的每一个字节有一个编号,这就是内存单元的“地址”在地址所标志的内存单元中存放数据。,P210,由于通过地址能找到所需的变量单元,我们可以说,地址指向该变量单元。在C语言中,将地址形象化地称为“指针”。意思是通过它能找到以它为地址的内存单元。,8.1 什么是指针,P210,int a,b;,a,b,2000,2
2、004,a=3;,3,直接访问,8.1 什么是指针,P210,int a;,3,a,a_pointer,2000,a_pointer=,间接访问,定义特殊变量a_pointer,2000,通过a_pointer取值,8.1 什么是指针,P210,为了表示将数值送到变量中,可以有两种表达方法:(1)将3直接送到变量a所代表的单元中(2)将3送到变量a_pointer所指向的单元(即a所代表的存储单元),指向就是通过地址来体现的假设a_pointer中的值是变量a的地址(2000),这样就在a_pointer和变量a之间建立起一种联系,即通过a_pointer能知道a的地址,从而找到变量a的内存单
3、元,一个变量的地址称为该变量的“指针”例如,地址2000是变量i的指针如果有一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量”a_pointer就是一个指针变量。指针变量就是地址变量,用来存放地址的变量,指针变量的值是地址(即指针),“指针”和“指针变量”是不同的概念可以说变量a的指针是2000,而不能说a的指针变量是2000指针是一个地址,而指针变量是存放地址的变量常常将指针变量简称为指针,8.2 指针变量,8.2.1 使用指针变量访问变量的例子8.2.2 怎样定义指针变量8.2.3 怎样引用指针变量8.2.4 指针变量作为函数参数,P211,8.2.1 使用指针变量访问变量
4、的例子,例8.1 通过指针变量访问整型变量。,P211,8.2.2 怎样定义指针变量,P212,定义指针变量的一般形式为:类型*指针变量名;如:int*p1,*p2;int是为指针变量指定的“基类型”基类型指定指针变量可指向的变量类型如pointer_1可以指向整型变量,但不能指向浮点型变量,8.2.2 怎样定义指针变量,P212,下面都是合法的定义和初始化:float*pointer_3;char*pointer_4;int a,b;int*pointer_1=,8.2.3 怎样引用指针变量,P214,在引用指针变量时,可能有三种情况:给指针变量赋值。如:p=,使p指向a,*p相当于a,以十
5、六进制输出a的地址,8.2.3 怎样引用指针变量,P214,要熟练掌握两个有关的运算符:(1)取地址运算符。(把1赋给a),8.2.4 指针变量作为函数参数,P215,例8.3 利用函数交换两个整数的值。,8.3 通过指针引用数组,P220,8.3.1 数组元素的指针8.3.2 通过指针引用数组元素8.3.3 用数组名作函数参数,8.3.1 数组元素的指针,P220,一个变量有地址,一个数组包含若干元素,每个数组元素都有相应的地址指针变量可以指向数组元素(把某一元素的地址放到一个指针变量中)所谓数组元素的指针就是数组元素的地址,可以用一个指针变量指向一个数组元素 int a10=1,3,5,7
6、,9,11,13,15,17,19;int*p;p=,等价于p=a;,等价于int*p=a;或int*p=,注意:数组名a不代表整个数组,只代表数组首元素的地址。“p=a;”的作用是“把a数组的首元素的地址赋给指针变量p”,而不是“把数组a各元素的值赋给p”。,8.3.2 通过指针引用数组元素,引用数组元素,可用下面两种方法:(1)下标法,用数组名加下标 如ai(2)指针法,即地址法。*(a+i)或*(p+i)(其中初值p=a),P221,指针运算:通过指针的运算,可以方便地引用数组中的元素。,(1)如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素,p-1指向同一数组中
7、的上一个元素。float a10,*p=a;假设a0的地址为2000,则p的值为2000p+1的值为2004,(2)如果p的初值为&a0,则p+i和a+i就是数组元素ai的地址,或者说,它们指向a数组序号为i的元素,p,p+1,a+1,p+i,a+i,p+9,a+9,(3)*(p+i)或*(a+i)是p+i或a+i所指向的数组元素,即ai。,p,p+1,a+1,p+i,a+i,p+9,a+9,*(p+i),(4)如果指针p1和p2都指向同一数组 p2-p1的值是4 不能p1+p2,p1,p2,8.3.3 用数组名作函数参数,P224,用数组名作函数参数时,因为实参数组名代表该数组首元素的地址,
8、形参应该是一个指针变量C编译都是将形参数组名作为指针变量来处理的,void fun(int arr,int n)void main()void fun(int arr,int n;int array10;fun(array,10);,fun(int*arr,int n),void fun(int arr,int n)void main()void fun(int arr,int n;int array10;fun(array,10);,array0,arr0,array数组,arr,array3,arr3,arr+3,实参数组名是指针常量,但形参数组名是按指针变量处理在函数调用进行虚实结合后,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 善于使用指针 善于 使用 指针 PPT 课件
链接地址:https://www.31ppt.com/p-5482999.html