在C中转换指针有什么意义?

时间:2015-01-03 16:02:01

标签: c pointers

我试图理解为什么人们在将C关键字转换为变量时通常会将其转换为地址。例如:

 int *x
 x = (int*) malloc (sizeof(int));

那里(int *)施放的重点是什么?

另一个例子:

 int *x;
 char *c;

 x = (int*) malloc (sizeof(int));
 *x = 100;

 c = (char*) x;

再说一遍,malloc中的(int *)转换点是什么,现在是cast(char *)?

地址的大小不应根据指针的类型而改变。在我的理解中,int *和char *(指针)应该占用相同的内存量,因为两者的地址应该具有相同的大小,无论指针指向内存中的整数还是字符。也就是说,我不明白为什么这个演员是必要的,因为我不知道这对编译器有什么用处。

另外,让我添加一个类似的问题,可以帮助我理解我的第一个问题:

例如,之间的区别是什么:

 x = (int *) malloc(sizeof(int));
 x = (char *) malloc(sizeof(int));

如果有人能解释我这些演员的观点,我将不胜感激。

0 个答案:

没有答案