指针数组

指针数组

各个元素都是整数的数组
指针数组,就是一个整数数组,那个数组的各个元素都是整数,指向某个内存地址。在C语言和C++语言中,数组元素全为指针的数组称为指针数组。一维指针数组的定义形式为:“类型名*数组标识符[数组长度]”。例如,一个一维指针数组的定义:int*ptr_array。数组名出现在表达式中时,很多情况下会被隐式转换为一个指针,指向数组的首个元素。注意这是声明定长数组时,其数组名转换成的数组首地址是常量。而声明数组并使某个指针指向其值指向某个数组的地址(不一定是首地址),指针取值可以改变。
    中文名:指针数组 外文名:pointer array 别名: 主要运用:作为函数的参量 运用领域:计算机编程 来源:C语言和C++语言 本质:“数组”

关系

数组指针是指向数组首元素的地址的指针,其本质为指针(这个指针存放的是数组首地址的地址,相当于2级指针,这个指针不可移动);指针数组是数组元素为指针的数组,其本质为数组。例如:*p是指针数组,实质是一个数组,里面的两个元素都是指针 []的优先级比*的优先级高,p先与[]结合,形成数组p,有两个元素的数组,再与*结合,表示此数组是指针类型的,每个数组元素相当于一个指针变量。

二维

二维数组:如char string_1只要定义了一个二维数组,无论赋不赋值,系统都会给他分配相应空间,而且该空间一定是连续的。其每个元素表示一个字符。我们可以通过指定下标对其元素进行修改。指针数组:如char *str_B 系统至少会分配5个连续的空间用来存储5个元素,表示str_B是一个5个元素的数组,每个元素是一个指向字符型数据的一个指针。由此可见,相比于比二维字符数组,指针数组有明显的优点:一是指针数组中每个元素所指的字符串不必限制在相同的字符长度;二是访问指针数组中的一个元素是用指针间接进行的,效率比下标方式要高。 但是二维字符数组却可以通过下标很方便的修改某一元素的值,而指针数组却无法这么做。

区别

数组指针只是一个指针变量,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间。

相关词条

相关搜索

其它词条