我刚看到这里
#include <stdio.h>
int main(int argc, char *argv[printf("Hello, world!\n")]) {}
Run Code Online (Sandbox Code Playgroud)
这样做是打印"Hello World!"
但是这里到底发生了什么?
我能猜到的最好的是它被编译并抛出执行堆栈的顶部,但语法对我来说看起来不合法......
AFAIK此代码不是标准的有效c ++代码:
int a = 5;
int b[a];
Run Code Online (Sandbox Code Playgroud)
但似乎很多编译器可以编译该代码(主要是警告),它只是按预期运行.我错了是编译器对我好吗?