天天看點

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); 
}         
           

繼續閱讀