c++ 里各种指针

来源:互联网 发布:数据变异程度 编辑:程序博客网 时间:2024/05/17 07:16
 
1)int *p p与*结合,表明p是一个指针 然后前面int说明p是一个整形的指针

2)int *p[n] 因为[]比*优先级高,所以p先与[]结合,表明p是个数组,然后这个数组在与*结合,说明数组里面的元素都是int型指针

3)int **p p与*结合,说明p是一个指针,再与*结合,说明这个指针指向的对象是一个指针,再与int结合,说明指针指向的成员是int型的指针

4)int (*p)[n] 这里p与*结合表示p是一个指针,然后与[]结合表明指针指向的内容是一个数组,最后与int结合,表明指针指向的内容是数组且数组中的元素都是int型,更简单的说p是指向一个int型构成的数组的指针

5)int *p() 这里p与()结合表明p是一个函数,也就是说p是一个返回int型指针的函数,这就是指针函数,形式如下:

6)int (*p)() 这里p与*结合,说明p是一个指针,然后与()结合,说明指针p指向函数的首地址,也就是函数指针,形式如下:

7)int **(*p)[n] 指针指向的内容是数组且数组的元素都是指向指针的指针

8)int (**p)[n] 因为()优先级大于[].所以从()开始结合    p与*结合表明是指针然后再与*结合表明p是指向一个指针的指针,然后与[]结合表明p是指向指针的指针,这个指针指向int型数据构成的数组
 

9) int *(*p(int))[n] 这个有点长,p与()结合表明是一个函数,()里面的int表明这个函数有一个int型参数,与*结合表明这个函数返回一个指针,因为[]高于*,所以我们要先于外面的[]结合表明这个这个函数返回是一个指针并且这个指针指向的是一个数组,然后与*结合表明这个函数返回的是一个指针并且这个指针指向的是一个元素为int型指针的数组

10) int (*p[])(int)  p[]结合说明p是一个数组,*p[]说明这个数组与指针相关,(*p[])(int) 这个数组的内容是函数指针, int (*p[])(int)这个数组的内容是返回值为int的函数指针
原创粉丝点击