第7章C51的指针.ppt
《第7章C51的指针.ppt》由会员分享,可在线阅读,更多相关《第7章C51的指针.ppt(30页珍藏版)》请在课桌文档上搜索。
1、21天学51单片机开发,第七讲:C51的指针,课程安排,地址和指针概述 指针变量的声明指针变量的赋值 指针变量的运算符特殊的指针类型数组指针 特殊的指针类型字符指针,地址和指针概述,内存单元是单片机存储器中的最小存储单位,通常一个字节称为一个内存单元。单片机内存单元的编号也就是地址。指针是一种特殊的数据类型,用指针声明的变量称为指针变量。指针变量的值实际上是一个地址,是单片机内存单元的编号。单片机中不同的数据类型所占用的内存单元数和它的大小有关。,指针变量的声明,声明一个指针变量具有特殊的形式,如下所示:类型标识符*指针名;类型标识符*指针名1,*指针名2,;在声明指针变量时,应注意如下几点:
2、在定义指针变量时,指针名前的“*”不能省略。同一个指针变量只能指向同一类型的变量。,指针变量的赋值,指针变量的赋值就是给予一个合理的地址值。指针变量被声明后可以指向任何同类型的变量。C51中使用地址运算符“&”获取变量的首地址。如果定义指针变量时不进行赋值,该指针变量被初始化为NULL。,指针变量的赋值,在C51语言中提供了灵活的指针变量赋值方法,主要有如下几种:在声明时赋值 动态赋值 指针变量之间传递 特殊的指针变量赋值数组 特殊的指针变量赋值字符串 特殊的指针变量赋值函数入口,在声明时赋值,在声明时赋值的方法比较简单,而且不占用程序执行时间。需要使用取地址运算符&来完成。典型的在声明时赋值
3、语句,示例如下。,int a;int*p=/初始化赋值,&a表示取变量a的首地址,动态赋值,指针变量也可以在程序执行时动态改变指针的值。需要使用取地址运算符&来完成。典型的动态赋值语句,示例如下。,int a;int*p;p=/利用&a获得变量a的首地址,然后赋值给p,指针变量之间传递,C51中可以将一个指针变量传递给另一个指针变量。在指针变量之间进行地址传递时,指针变量的类型应该一致。,int a=15,b=26;/定义变量和初始化int*p1=/把p1指向的内容赋给p2所指的区域,特殊的指针变量赋值数组,引用数组时应该逐个元素引用,而不能直接引用数组名。数组名代表的是数组存放的首地址。可以
4、通过引用数组名而将数组首地址赋值给指针变量。,int a7,*p;/声明数组以及指针变量p=a;/数组名表示数组的首地址,故可赋予指向数组的指针变量p=/数组第一个元素的地址也是整个数组的首地址,特殊的指针变量赋值字符串,C51语言中没有字符串变量,只有字符串常量。可以把字符串的首地址赋予指向字符类型的指针变量。,char*p;/声明字符型指针变量p=Hello everyone!;/赋值,char*p=Hello everyone!;,特殊的指针变量赋值函数入口,指针变量还可以指向函数。对指向函数的指针变量赋值,就是把函数的入口首地址赋予指向函数的指针变量。,用函数为指针变量赋值注意事项,注
5、意其表示方法两对括号都不能省略。对指针变量pf赋值时,函数名fun前没有地址运算符“&”。在C51语言中,指针变量若不带初始化项,其将被初始化为NULL。空指针常用于调用一个带有返回指针的函数时。,指针变量的运算符,C51语言中提供了专门的运算符来用于指针的操作:取地址运算符&取值运算符*这些运算符可以完成取地址、赋值、取值等操作。指针变量之间也可以进行一些关系和算术运算。,取地址运算符&,取地址运算符&就是用于提取变量的地址。取地址运算符&是单目运算符,符合自右至左的结合性。取地址运算符&的使用格式如下:&变量名,取值运算符*,取值运算符*就是提取指针变量所指向内存单元中的数据内容。取值运算
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C51 指针
链接地址:https://www.desk33.com/p-750362.html