8.3 数组与指针
数组与指针的联系非常紧密。除了可以用下标访问数组元素以外,也可以用指向数组的指针访问数组中的元素。本节将讲解数组与指针的关系。
8.3.1 数组与指针的关系
定义一个数组的时候,定义这个数组的头指针,然后分配若干个存储单元。定义的数组名称是可以直接赋值给一个指针的,而这个指针可以指向这个数组的第一个元素。范例8-5所示的程序可以说明数组与指针的这种关系。
【范例8-5】数组与指针的关系实例代码如下所示。
实例代码8-5
- 01 #include <stdio.h>
- 02 int main()
- 03 {
- 04 int *p; /*定义一个指向整型变量的指针。*/
- 05 int a[3]; /*定义一个整型数组。*/
- 06 a[0]=10; /*对数组的变量赋值。*/
- 07 a[1]=11;
- 08 a[2]=12;
- 09 p=a; /*将数组赋值给一个指针。*/
- 10 printf("%d\n",*p); /*输出这个指针指向的内容。*/
- 11 p++; /*指针向后移动一个单元。*/
- 12 printf("%d\n",*p); /*输出指针指向的内容。*/
- 13 p++; /*指针向后移动一个单元。*/
- 14 printf("%d\n",*p); /*输出指针指向的内容。*/
- 15 return 0;
- 16 }
【执行结果】编译并运行这个程序,结果如下所示。- 10
- 11
- 12
从程序的结果可知,数组名称相当于指向一组连续数据指针。用指针来访问数组的元素与下标访问量等效。
【代码解析】
代码第09行将数组的首地址赋值给指针变量p。
代码第10行、第12行和第14行分别输出数组的第0个元素的值、第1个元素的值和第2个元素的值。
提示:数组名即为数组的头指针。