
printf的参数里是一个逗号表达式并且逗号表达式没加括号但是对于整个赋值的表达式却加了括号,这种情况怎么办?
“Devil组”引证GPT后的撰写:
- printf 函数的第二个参数是一个逗号表达式,并且没有加括号,而整个赋值的表达式 (a=65,20,15) 则加了括号。这是因为在赋值表达式中,括号可以改变求值顺序。括号内的表达式先被求值,然后再和外部的操作符一起求值。
- 在这个程序中,逗号表达式 (a=65,20,15) 的值为 15,因为逗号表达式的值是最后一个子表达式的值。赋值表达式 (a=65,20,15) 中的括号不影响求值顺序,只是强制把赋值操作先完成,因此 a 的值被赋为 65。