我有是这样一个代码:铸造语法练习
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';
试图打开你的编译器警告? – Mat
我认为他们都不是很好,因为你正在给int分配一个char。 – Heisenbug