C语言 取值的问题,如何解决?


#include <stdio.h>
main()
{
    int x = 10, y = 3, z;
    printf("%d\n", z = (x % y, x / y));
}

这个z后面的是什么意思啊 为什么结果是3呢

逗号表达式,是c语言中的逗号运算符,优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。

如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14;a=(a=35,a4)的值是60,其中(a=35,a4)的值是60, a的值在逗号表达式里一直是15,最后被逗号表达式赋值为60,a的值最终为60

逗号运算符,取后值,z = (x % y, x / y)其实就是z=x / y=10/3,三个都是整形变量,因此是整除运算,z的值为3,输出3