2016 - 2024

感恩一路有你

指针的简单教程

浏览量:1388 时间:2024-02-01 12:26:47 作者:采采

C语言中,指针是一种广泛使用的数据类型。利用指针编程是C语言最主要的风格之一。指针变量可以表示各种数据结构,方便地使用数组和字符串,并且能够像汇编语言一样处理内存地址,从而编写出精练而高效的程序。指针极大地丰富了C语言的功能。学习指针是学习C语言中最重要的一环,能否正确理解和使用指针是我们是否掌握C语言的一个标志。同时,指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念,还必须要多编程,上机调试。只要作到这些,指针也是不难掌握的。

C语言地址指针的基本概念

在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等。为了正确地访问这些内存单元,必须为每个内存单元编上号,即给每个内存单元分配一个唯一的地址。这个地址就是指针,也可以说是内存单元的编号。

在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。指针变量的值即为某个内存单元的地址,也可以说是某个内存单元的指针。严格地说,一个指针是一个地址,是一个常量。而一个指针变量却可以被赋予不同的指针值,是变量。但通常把指针变量简称为指针。定义指针的目的是为了通过指针去访问内存单元。

变量的指针和指针变量

变量的指针就是变量的地址,存放变量地址的变量是指针变量。在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。指针变量的值即为某个变量的地址,也可以说是某个变量的指针。

为了表示指针变量和它所指向的变量之间的关系,在程序中用“*”符号表示“指向”,例如,`i_pointer`代表指针变量,而`*i_pointer`是`i_pointer`所指向的变量。因此,下面两个语句作用相同:

```

i 3;

*i_pointer 3;

```

第二个语句的含义是将3赋给指针变量`i_pointer`所指向的变量。

定义一个指针变量包括三个内容:指针类型说明、指针变量名和变量值(指针)所指向的变量的数据类型。其一般形式为:

```

类型说明符 *变量名;

```

其中,`*`表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示本指针变量所指向的变量的数据类型。

例如:

```

int *p1; // p1是一个指针变量,它的值是某个整型变量的地址

float *p2; /* p2是指向浮点变量的指针变量 */

char *p3; /* p3是指向字符变量的指针变量 */

```

通过访问指针变量,可以取得数组或函数的首地址,从而找到该数组或函数。这样一来,凡是出现数组和函数的地方都可以用一个指针变量来表示,只要该指针变量中赋予数组或函数的首地址即可。这样做将会使程序的概念十分清楚,程序本身也更加精练和高效。在C语言中,一种数据类型或数据结构往往占有一组连续的内存单元。用“地址”这个概念并不能很好地描述一种数据类型或数据结构,而“指针”虽然实际上也是一个地址,但它却是一个数据结构的首地址,它是“指向”一个数据结构的,因此概念更为清楚,表示更为明确。这也是引入“指针”概念的一个重要原因。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。