我遇到了一些奇怪的行为,但我在网上找不到任何信息。如果我像这样初始化一个布尔数组:
bool condition[10] = {true,[5]=true};
我得到了我期望的输出,第一个和第六个值是 true,而其他的值是 false。但如果我写以下代码片段:
bool condition[10] = {true,condition[5]=true};
我得到了第一个、第二个和第六个值为true。我认为这是某种未定义的行为,但我希望有比我更有知识的人能解释一下发生了什么。
我正在使用GCC编译器和“-std = gnu99”编译选项,并使用额外的警告标志,但我没有收到任何错误消息。
condition[5]
也可用。 - BLUEPIXYcondition[5]=true
是一次赋值操作。它将值true
赋给了condition[5]
。同时,它产生了值true
,用于初始化了condition[1]
。 - Keith Thompson