void指针的使用

整理网络资源


**C语言中在任何时候都可以用void类型的指针来代替其他类型的指针,void指针可以指向任何数据类型的变量**
**
如果要通过void指针去获取它所指向的变量值时候,需要先将void指针强制类型转换成和变量名类型想匹配的数据类型指针后再进行操作;**
指针的强类类型转化:
    void *p;
    int *pa = (int *)p;
   
然后才能对原来的void指针指向的空间进行操作
任何类型的指针都可以赋值给void指针,无需进行强制类型转换;
    float f = 1.22f;
    float *p1 = &f;
    p = p1;//
float指针赋值被p

 

void指针的应用场合: 

当进行纯粹的内存操作的时候,或者传递一个指向未定类型的指针时,可以使用void指针; 

void* memcpy(void*addr1,void *addr2,size_t n); 

该函数只进行纯粹的内存拷贝,包括NULL字符在内的任何内容都将被拷贝

 

1:对函数参数的限定
2:
对函数返回的限定
3:void
指针也常用作函数指针

 

 

 

#include<stdio.h>

 

int main(void)

{

    int num1 = 1;

    char char1 = 'b';

 

    /*定义两个void指针类型*/

    void *void_pointer_1;

    void *void_pointer_2;

 

    /*给不同的void指针指向不同的数据类型*/

    void_pointer_1 = &num1;

    void_pointer_2 = &char1;

 

   printf("void_pointer_1:%d,void_pointer_2:%c\n",*((int*)void_pointer_1),*((char *)void_pointer_2));

 

    void_pointer_2 = &num1;

   printf("void_pointer1:%d\n",*((int *)(void_pointer_2)));

 

    float float_1 = 1.25f;

    float* float_pointer = &float_1;

    void* void_float_pointer ;

    /**float类型指针赋值给void类型指针*/

    void_float_pointer = float_pointer;

 

   printf("float_pointer:%f\n",*((float *)void_float_pointer));

 

    return 0;

}

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值