C语言指针整理3_无类型指针

无类型指针

声明指针时在*前使用void表示类型名称,这种指针叫做无类型指针
这种指针是可以和任意类型的存储区捆绑的。
无法通过指针知道捆绑存储区的类型
无类型指针既不可以直接在前面加* 也不可以做加减整数的计算

无类型指针必须首先强制类型转换成有类型指针然后才能使用
无类型指针通常作为函数的形式参数使用

#include<stdio.h>
void main()
{
      int num = 0;
      void *p_v =  &num;
      *(int *)p_v = 10;  //强制转换
      //*p_v = 10; 错误的
}
//无类型指针
#include<stdio.h>
void print(void *p_v,int type)
{
       if(type == 1)
      {
             printf("%c\n",*(char*)p_v);
      }
       else if(type == 2)
      {
             printf("%d\n",*(int*)p_v);
      }
       else
      {
             printf("%g\n",*(float*)p_v);
      }
}
void main()
{
        int num = 10;
        char ch = 't';
        float fnum = 5.3f;
        print(&ch,1);
        print(&num,2);
        print(&fnum,3); 
}         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值