指针数组、数组指针,指针函数和函数指针两组对应的区别
指针数组和数组指针的区别在于:指针数组是一个数组,其中的每个元素都是一个指针;而数组指针是一个指针,它指向一个数组。指针函数和函数指针的区别在于:指针函数是一个返回指针类型的函数;而函数指针是一个指针,它指向一个函数。
1.指针数组和数组指针
指针数组是指一个数组,其中的每个元素都是一个指针,每个指针可以指向不同类型的数据。指针数组的声明形式为:
type *name[n]
其中type为指针类型,name为数组名,n为数组元素的个数。
数组指针是指一个指针,它指向一个数组,指向的数组中的元素可以是不同类型的数据。数组指针的声明形式为:
type (*name)[n]
其中type为数组元素的类型,name为指针名,n为数组元素的个数。
2.指针函数和函数指针
指针函数是指一个返回指针类型的函数。指针函数的声明形式为:
type *function_name(arguments)
其中type为指针类型,function_name为函数名,arguments为函数参数。
函数指针是指一个指针,它指向一个函数。函数指针的声明形式为:
type (*function_pointer)(arguments)
其中type为函数返回值类型,function_pointer为函数指针名,arguments为函数参数。
3.两组之间的区别
指针数组和数组指针可以互相转换,但指针函数和函数指针不能互相转换;指针数组和数组指针可以用于访问数组中的元素,指针函数和函数指针可以用于动态调用不同的函数。
延伸阅读
C语言中的指针是什么
指针,是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分。指针也就是内存地址,指针变量是用来存放内存地址的变量,在同一CPU构架下,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储数据的变量地址进行操作。
指针描述了数据在内存中的位置,标示了一个占据存储空间的实体,在这一段空间起始位置的相对距离值。在C/C++语言中,指针一般被认为是指针变量,指针变量的内容存储的是其指向的对象的首地址,指向的对象可以是变量(指针变量也是变量)、数组、函数等占据存储空间的实体。