我有这个代码:
int main()
{
char buffer[10];
if( buffer ) {
return 1;
}
return 0;
}
Visual C++ 10 解释如下:
buffer
衰减为指针,然后将指针与 null 进行比较。当它与/O2 编译时,检查被消除,代码变得等同于 return 1;
。上面的代码有效吗? Visual C++ 是否正确编译(我的意思是衰减部分,而不是优化部分)?
最佳答案
是的,从数组类型到 bool
的转换是由标准转换明确定义的。引用 C++11, 4/1(突出显示相关转换):
关于c++ - 使用数组作为条件表达式在 C++ 中有效吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8575555/