ylww

随笔仅作学习记录,请辩证参考!!!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

void 类型指针

void => 空类型

void* => 空类型指针,只存储地址的值,丢失类型,无法访问,要访问其值,我们必须对这个指针做出正确的

类型转换,然后再间接引用指针。void* 指针不允许算术运算。

所有其他类型的指针都可以隐式自动转换成void类型指针,反之需要强制类型转换。

 

下面直接访问(打印)p内部值是可以的,且打印出的地址相同

 

若要访问p所指向的具体值,可以强制类型转换:

 

 

函数指针

函数是有地址的,函数的地址和函数内部变量的地址是不同的值,这与计算机的存储方式有关。

 

函数指针的定义:把函数声明移过来(形参名可以省掉),把函数名改写成(* 函数指针名)

int compare_int(const void *a,  const void *b) {

...

...

}

 

定义:

int (*fp)(const void *,  const void *);

 fp = &compare_int;

 

调用:

方式一: (*fp)(参数1,参数2); //按普通指针解引的方式进行调用,(*fp)等同于compare_int

方式二:fp(参数1,参数2)       //用指针直接调用

posted on 2022-05-29 10:19  理想主义者光芒万丈  阅读(119)  评论(0)    收藏  举报