【发布时间】:2021-05-08 08:07:17
【问题描述】:
为什么需要空指针,只要可以将任何指针类型转换为任何指针类型,即:
char b = 5;
int*a = (int*)&b;//both upcasting
或
int b = 10;
char*a = (char*)b;//and downcasting are allowed
?
另外,为什么在使用 malloc/calloc/realloc 时不需要强制转换?
【问题讨论】:
-
“为什么在使用 malloc/calloc/realloc 时不需要强制转换”在Do I cast the result of malloc?中得到了很好的介绍
-
@pauk "可以将任何指针类型转换为任何指针类型" --> 好奇,是谁或什么文本建议的?
标签: c pointers casting void-pointers