指针数组与数组指针

        在C语言中,指针数组与数组指针是两个常被混淆的概念。概念越相似、越容易混淆,就越要抓住本质。本质上来说:

        指针数组是一个数组,在一个数组里面存放了指针变量

        数组指针是一种指针,它指向数组,存放的是数组的地址
 

一、指针数组

        平时我们常见的数组有:整型数组、字符数组、字符串数组等。我们最常见的就是整型数组,它的定义方式是“int arr[10]”,arr是数组名,[ ]中的数字是数组的个数,int说明数组中存储的数据类型是整型。

        整型数组说明数组存储的内容是整型数据,那么指针数组就说明数组存储的内容是指针。整型指针用“int*”表示,所以整型指针数组的定义为“int* arr[10]”,用于存储整型指针变量。字符型指针用“char*”表示,所以字符指针数组的定义为“char* arr[10]”,用于存储字符指针变量,但是它更常用于存储字符串

        本篇文章仅作指针数组与数组指针的区分,至于为什么字符指针变量可以存储字符串,我在下篇文章会作详细回答。
 

二、数组指针

        平时我们常见的指针有:整型指针、字符指针等。我们最常见的就是整型指针变量,它的定义方式是“int* p”,p是整型指针变量的变量名,*表示p是一个指针变量,int表示指针指向的数据类型是整型。

        整型指针说明指针指向的数据类型是整型,那么数组指针说明指针指向的数据类型是数组。整型数组的数据类型是int[10],所以整型数组指针变量的定义为“int (*p) [10]”,用于指向整型数组。在运算符中,因为[ ]的优先级高于*, 所以需要加上括号,先说明p变量是一个指针变量。

        Tip:本文的数组存储的元素均设为10个,以方便举例。

 

 

 

 

你可能感兴趣的:(c语言)