【发布时间】:2012-09-28 09:08:09
【问题描述】:
我有一个类似的代码:
int main(void)
{
char mychar = 'd';
int *ptr = malloc(sizeof(*ptr)) ;
*ptr = (char) 'c' ; // *ptr = (char*) 'c'; Gives the exact same result
printf("%c\n",*ptr);
memset(ptr,mychar,sizeof(*ptr));
printf("%c\n",*ptr);
free(ptr);
printf("%c\n",*ptr);
return 0 ;
}
代码对指针样式转换和数据类型转换给出了相同的结果。
应该使用这两种风格中的哪一种或被认为是一种好的做法,为什么?
*ptr = (char) 'c' ;
*ptr = (char*) 'c';
【问题讨论】:
-
尝试打开编译器警告?
-
我认为它们都不好,因为您将 char 分配给 int。