二级C语言考试辅导教程第六章:指针[1]

二级C语言考试辅导教程第六章:指针[1],第1张

二级C语言考试辅导教程第六章:指针[1],第2张

第六章:指针
指针简介
指针是C语言中广泛使用的一种数据类型。指针编程是C语言最重要的风格之一。指针变量可以用来表示各种数据结构;能轻松使用数组和字符串;并且可以像汇编语言一样处理内存地址,从而编译出简洁高效的程序。指针极大地丰富了C语言的功能。学习指针是学习C语言最重要的部分。能否正确理解和使用指针是我们是否掌握C语言的标志。同时,指针也是C语言中最难的部分。除了正确理解基本概念,还需要在电脑上编程调试。只要做到这一点,指针就不难掌握。

在计算机中,所有的数据都储存在内存中。一般一个内存中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数量不一,如整数量占2个单元,字符量占1个单元等。,这在第二章已经详细介绍过了。为了正确访问这些存储单元,必须对每个存储单元进行编号。根据存储单元的编号,可以准确地找到存储单元。存储器的编号也称为地址。由于所需的存储单元可以根据其编号或地址找到,因此该地址通常被称为指针。存储单元的指针和存储单元的内容是两个不同的概念。可以用一个通俗的例子来说明它们之间的关系。我们去银行存取款,银行工作人员会根据我们的账号找我们的存款单,然后在存款单上写存取金额。这里账号是存单的指针,存款号是存单的内容。对于存储单元,单元的地址是指针,存储的数据是单元的内容。在C语言中,允许使用变量来存储指针。这个变量叫做指针变量。因此,指针变量的值是内存单元的地址或内存单元的指针。图中有一个字符变量C,其内容为“K”(ASCII码为十进制数75),C占用单元011A(地址用十六进制数表示)。有一个指针变量P,内容为011A。在这种情况下,我们称P为指向变量C的指针,或者P是指向变量C的指针,严格来说,指针是一个地址,也是一个常数。然而,一个指针变量可以被赋予不同的指针值。然而,指针变量通常简称为指针。为了避免混淆,我们约定“指针”指的是地址,地址是一个常量,“指针变量”指的是值为地址的变量。指针被定义为通过指针访问存储单元。

由于指针变量的值是一个地址,所以这个地址不仅可以是变量的地址,也可以是其他数据结构的地址。在指针变量中存储数组或函数的首地址有什么意义?因为数组或函数是连续存储的。通过访问指针变量获得数组或函数的第一个地址,找到数组或函数。这样,所有出现数组和函数的地方都可以用指针变量来表示,只要指针变量给出数组或函数的第一个地址。这样做会让程序的概念非常清晰,程序本身简洁高效。在C语言中,一个数据类型或数据结构经常占用一组连续的内存单元。“地址”这个概念并不能很好的描述一个数据类型或者数据结构,而“指针”其实是一个地址,但它是一个数据结构的第一个地址,它指向的是一个数据结构,所以这个概念更清晰,表达也更明确。这也是引入“指针”概念的重要原因。资料来源:www.examda.com

指针变量的类型描述

指针变量的类型描述包括三个内容:
(1)指针类型描述,即将一个变量定义为指针变量;
(2)指针变量名;
(3)变量值(指针)指向的变量的数据类型。
它的一般形式是:类型说明符*变量名;
其中*表示这是一个指针变量,变量名称是定义的指针变量名称,类型说明符表示该指针变量所指向的变量的数据类型。
例如:int * p1P1是一个指针变量,它的值是一个整型变量的地址。或者p1指向一个整型变量。至于p1指向哪个整型变量,应该由给p1的地址决定。
再比如:
staic int * p2;/*p2是指向静态整数变量的指针变量*/
float * P3;/*p3是指向浮点变量*/
char *p4的指针变量;/*p4是指向字符变量的指针变量*/需要注意的是,指针变量只能指向同类型的变量。例如,P3只能指向浮点变量,而不能指向浮点变量和字符变量。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 二级C语言考试辅导教程第六章:指针[1]

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情