我试图理解为什么人们在将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));
如果有人能解释我这些演员的观点,我将不胜感激。