【发布时间】:2012-10-24 08:16:40
【问题描述】:
从我的编译器行为的角度来看,我发现很奇怪,它允许将布尔值分配给 * char。
char * k= false;
为什么?但是赋值后 * char 仍然没有初始化。为什么编译器不允许分配int 值?
【问题讨论】:
-
这使得
k像char * k = 0一样成为NULL 指针。 -
这是从
bool到char *的隐式转换。但是,这仅适用于转换为 (int) 0 的常量表达式,它是指针的特殊初始化程序。如果有人引用标准中的相应规则会很有趣。
标签: c++