目录
本篇特别简单,主要就是认识类型,没有使用方法,甚至可以不用看图。
一.第一个最简单的开始 :一级整型指针
1.int * pa = &a;
会很简单 去掉变量名得到 int * = &a;
我们再排除其他干扰 赋值号(=)开始全部去掉 得到 int *
结论:可以看出int * 是一个一级指针
2.去掉( *+变量名 )得到
int
结论:指针指向的对象是一个int类型
总结:这是一个指向对象为int型的一级指针
二.整型数组指针
指向整型数组的指针怎么解剖呢?
int ( * parr ) [ 3 ]
1.去掉 变量名 :int (*) [ 3 ]
变量名第一结合对象是 * :这是一个指针
2.去掉(*) :int [ 3 ]
指针指向的是一个数组
3.去掉 [3] :int
数组元素类型为int
总结:这是一个指向数组 数组存放的是整型 的指针
三.整型指针数组
int * parr [2]
1.去掉变量名:int * [2]
变量名先跟优先级高的 [ ] 组成配对
这本质上是一个数组
2.去掉先结合的[]:int *
数组里存放的是一个指针
3.去掉 * : int
指针指向的对象类型为int
总结:这是一个存放的元素为指针 指针指向对象类型为整型的 数组
四.函数指针
int ( * pA) ( int , int )
1.去掉变量名:int ( * ) ( int , int )
这是一个指针
2.去掉( * ) :int ( int , int )
指针指向的对象是函数
3.去掉int :( int , int ) 或者去掉( int,int ):int
函数形参为两个int型,返回类型为int型
总结:这是一个指向对象是 以两个整型为形参 返回类型是整型的指针
五.函数指针数组
int ( * parr [ ] ) ( int , int)
1.去掉变量名: int ( * [ ] ) ( int , int)
parr去掉的位置先结合 [ ] 这最本质的是一个数组
2.去掉 [ ] : int ( * ) ( int , int)
数组里存放的是一个指针 指向的是一个函数
3.去掉 * : int ( int , int)
函数形参为两个整型
4.去掉(int , int) : int
函数返回类型为整型
总结:这是一个存放 指向 有两个整型形参 返回类型为整型的函数的指针 的数组;
存放指针,指针指向函数,函数有两个形参,返回类型为整型,的数组
六.指向函数指针数组的指针
int ( * ( * par ) [ 2 ] )(int , int )
1.去掉变量名: int ( * ( * ) [ 2 ] ) (int , int )
par先跟*结合 par是一个指针
2.去掉 ( * par ) : int ( * [ 2 ] ) (int , int )
( * par )先跟[ ]结合 指向的是一个数组
3.去掉 ( * par ) [ 2 ] ): int ( * (int , int )
数组里存放的是一个指向函数的指针
4.去掉( * ( * par ) [ 2 ] ) : int (int , int )
函数有两个整型形参 返回类型是整型
总结:这是一个 指向数组 数组里存放的是函数指针 的指针
最后太饿了,先去吃饭。(如有错误请大家指点一下)