int n=10, a[n++], b[++n];这样的声明序列会不会引起未定义行为呢

这个问题有意思,由于我一直乖乖的遵循每行只定义一个变量的原则,所以都没考虑过这个问题。于是翻了一下手上的一个标准pdf(版本不详,看起来好像是2011的= =),我认为题主的说法是对的,每个,之间都有一个序列点。我的做法是先设定一个简单的语句: int a, b;然后按照标准中的BNF人肉进行Parse:得到 (declaration (declaration-specifiers (type-specifier \u0026#39;int) ) (init-declarator-list (init-declarator (declarator (identifier \u0026#39;a))) \u0026#39;, (init-declarator (declarator (identifier \u0026#39;b)))) \u0026#39;;)再按照标准所说A full declarator is a declarator that is not part of another declarator.很显然这里的a b各自都是一个full declarator,那么它们后面都有一个序列点
■网友
我印象中好像不能用变量申明数组啊 必须是const才行


    推荐阅读