int main(void)
{
char four[4] = "four";
return 0;
}
当编译为 C++ 程序时,G++ 报告
xxx.cpp:在函数 int main() 中:
xxx.cpp:3:错误:字符数组的初始化字符串太长
编译一个 C 程序时,GCC 没有报错。
在我看来,正如我所料,赋值正确地将所有 4 个字节复制到变量中。
所以我的问题归结为......
在 C 语言中观察到的行为是正确的,还是我在某处触及了未定义的行为,还是完全是别的东西?