浅谈对指针和数组的理解

在这里首先声明一点,指针和数组没有任何关系。

指针的概念:指针即地址,用来存放地址的变量叫指针变量;

数组的概念:具有相同的数据类型且按一定次序排列的一组变量的集合体;

今天来介绍一下:(1)指针数组
                         (2)数组指针
                         (3) 函数指针
                         (4)函数指针数组

                         (5)指向函数指针数组的指针 

(1)指针数组

指针数组是数组,其内部元素是指针,即地址。如 int *a[10],char *a[10];

(2)数组指针

数组指针是指针,通俗的说,数组指针就是数组的地址。如 int (*p)[10],由于()的优先级高于[ ],所以p先和*结合,说明p是一个指针变量,其指向一个大小为10个整型的数组。

(3)函数指针

函数指针即函数的地址,而函数名或&函数名就表示函数的入口地址。用来存放函数指针的变量即函数指针变量。如

 void (*add)( ),其中add表示函数名,由于add先与*结合,说明add是一个指针,指向一个函数,指向的函数没有参数,返回值类型为void。

(4)函数指针数组

 函数指针数组是数组,其内部元素为函数指针,即函数的地址。如 int (*p[10])( ),因为[ ]的优先级高于*,所以p先与[ ]结合,说明p是一个数组,其内部元素是 int (*)( )类型的函数指针。

(5)指向函数指针数组的指针

指向函数指针数组的指针是指针,指向数组,数组的内部元素是函数指针。如 int (*(*p)[10])( ),由于p先与*结合,说明p是一个指针,指向一个数组,数组的内部元素是 int (*)( )类型的函数指针。


猜你喜欢

转载自blog.csdn.net/ty6693/article/details/80172938
今日推荐