無類型指針
聲明指針時在*前使用void表示類型名稱,這種指針叫做無類型指針
這種指針是可以和任意類型的存儲區捆綁的。
無法通過指針知道捆綁存儲區的類型
無類型指針既不可以直接在前面加
*
也不可以做加減整數的計算
無類型指針必須首先強制類型轉換成有類型指針然後才能使用
無類型指針通常作為函數的形式參數使用
#include<stdio.h>
void main()
{
int num = 0;
void *p_v = #
*(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);
}