帅周 发表于 2021-5-10 21:13:38

C语言求助

在C语言里
为甚么a,b = b,a + b;
和a = b; b = a + b;
不一样{:5_99:}

万千只cnm 发表于 2021-5-10 21:18:01

如果多个逗号隔开   只看分号前最后一个表达式

肖-肖 发表于 2021-5-10 21:35:47

本帖最后由 肖-肖 于 2021-5-10 22:04 编辑

解释在注释中:
#include<stdio.h>
int main()
{
    int a=1,b=1;
    a,b=b,a+b;//把b给b并没有把a+b的给b,因为不是a=(b,a+b),这里没有括号且赋值号优先级大于逗号所以就是前面所说的过程了
    printf("a=%d,b=%d\n",a,b);
    a=1,b=1;//重新赋值
    a=b;//把b给a
    b=a+b;//a+b给b
    printf("a=%d,b=%d",a,b);
    return 0;
}


页: [1]
查看完整版本: C语言求助