如何声明指向不同数据类型的指针,但它们将在内存中占用相同的空间量

时间:2016-03-28 06:47:39

标签: c

这是我的代码

int main()
{ 
   char *pchar;
   short *pshort;
   int *pint;
   long *plong;
   float *pfloat;
   double *pdouble;

   pchar = pshort = pint = plong = pfloat = pdouble;
   printf("sizeof *pchar   is = %u\n",sizeof(pchar));
   printf("sizeof *pshort  is = %u\n",sizeof(pshort));
   printf("sizeof *pint    is = %u\n",sizeof(pint));
   printf("sizeof *plong   is = %u\n",sizeof(plong));
   printf("sizeof *pfloat  is = %u\n",sizeof(pfloat));
   printf("sizeof *pdouble is = %u\n",sizeof(pdouble));

   return 0;
}

我希望这些指针变量中的每一个指向不同的数据类型,但它们将在内存中占用相同的空间量。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

制作通用指针。

  

当一个变量被声明为一个指向void类型的指针时,它就是   称为通用指针。因为你不能有一个类型的变量   void,指针不会指向任何数据,因此不能   解引用。它仍然是一个指针,你必须使用它   首先将它转换为另一种指针。因此,术语Generic   指针。

这个link有一个例子。