关于c语言的逗号表达式。。。

关于c语言的逗号表达式。。。

逗号运算符的优先级比赋值运算符(=)低,因此程序中总是先对a进行赋值以后再去求逗号后面的表达式。对第一个程序:a=3+5,6+8; 改为:a=(3+5,6+8);对第二个程序:int a; a=3+5,a+8;这是很怪异的,一方面,若直接写为:a=3+5,a+8,则a的结果肯定为8,理由如前。如果写为:a=(3+5,a+8);则a的值是不确定的,因为这里a应该等于a+8的值,而计算a+8时,a尚未初始化,它的值只是栈上的一个垃圾数据。这样的代码哪本教科书上的?把那个作者拿去烹了得了。。。。。。。。。。误人子弟!!!