手把手教你学单片机的C语言程序设计(十四)
维普资讯
篁 ,,厂..一_葺● —l匿豳
变量的指针变量 (简称指针变量)。例 放 的内容是另一个变量在内存中的地
如,如果用另一个变量 pi存放整型变 址 。拥有这个地址的变量则称为该指针
量 i的地址 60H,则pi即为一个指针 变量所指向的变量。每一个变量都有它
指针是 C语言中的一个重要概 变量。 自己的指针(1P地址),而每一个指针变
念,指针类型数据在C语言程序中的 量都是指向另一个变量的。为了表示指
使用十分普遍。C语言区别于其它程序 针变量和它所指向的变量之间的关系。
设计语言的主要特点就是处理指针时 C语言中用符号 “”来表示 “指向 。例
所表现出的能力和灵活性。 指针变量与其它变量一样。必须先 如 。整型变量 i的地址60H存放在指针
正确地使用指针类型数据。可以有 定义。后使用。 变量 pi中。则可用 pi来表示指针变量
效地表示复杂的数据结构 。直接处理内 指针变量定义的一般形式: pi所指向的变量,即 pi也表示变量j。
存地址。而且可以更为有效合理地使用 数据类型 i暑导类型】指针变量名;
数组。 其中。“指针变量名”是我们定义的
指针变量名字。“数据类型”说明了该指
针变量所指向的变量的类型。 “存储器 指针变量是含有一个数据对象地
类型 是可选项 。它是 C51编译器的一 址 的特殊变量,指针变量中只能存放地
计算机程序的指令、常量和变量等 种扩展。如果带有此选项,指针被定义 址。在实际的编程和运算过程中,变量
都要存放在以字节为单位的内存单元 为基于存储器的指针。无此选项时,被 的地址和指针变量的地址是不可见的。
中,内存的每个字节都具有一个唯一的 定义为一般指针。这两种指针的区别在 因此,C语言提供了一个取地址运算符
编号。这个编号就是存储单元的地址。 于它们的存储字节不同。一般指针在内 &。使用取地址运算符 “和赋值运算
各个存储单元中所存放的数据。称 存中占用3个字节。而基于存储器的指 符 “=”就可以使一个指针变量指向一
为该单元的内容。计算机在执行任何一 针。则指针的长度可为 1个字节(存储 个变量。
个程序时都要涉及到许多的单元访问。 器类型选项为 idata、data、pdata)或 2 例t1:1:
就是按照内存单元的地址来访问该单 个字节 (存储器类型选项为 code、 intt:
元中的内容,即按地址来读或写该单元 xdata)。 int pt:
中的数据。由于通过地址可以找到所需 例如: Dt=&t:
要的单元,因此这种访问是 “直接访问” intpt: 通过取地址运算和赋值运算后。指
方式。 定义一个指向对象类型为int的一 针变量 pt就指向了变量t。
另外一种访问是 “间接访问”,它首 般指针,指针自身在默认的存储区(由 当完成了变量、指针变量的定义以
先将欲访问单元的地址存放在另一个 编译模式决定),指针长度为3个字节。 及指针变量的引用后。我们就可以对内