c语言-在同一行赋值对不同变量以逗号分隔与以分号分隔的区别

在使用if语句后,对其包含的语句进行赋值操作
如:n=2,m=3;
和:n=2;m=3;
这两者之间有什么区别?

img

这两个表达式的结果是一样的,仅在语法上略有不同。半角逗号也起分隔语句的作用,但不是语句结束。举例来说,比如:int n,m,i,j; 如果中间改用半角分号,int n;语句结束,后面的变量需要单独再加int。而赋值语句就是var_name=value,用,或;分隔都一样。

n=2;和m=3用分号分隔的话,相当于是两个语句,要是想都在if条件中提现出来的话,就要加一个大括号
而n=2,m=3用逗号分隔的话,相当于一个语句,当满足if语句时,n=2 m=3
(if下面一条语句的时候可以不加大括号,两句之上就要添加括号,才能拥有if的条件)

n=2,m=3;这表示是一条语句,中间是逗号','运算符,实现同时对n 和 m 的赋值操作,这样写的作用是,可以省略了if() {这对大括号 }。
n=2;m=3; 因为赋值语句后面跟的是分号‘;' ,这是两条语句,if() 后面如果没有大括号,则if(条件判断) 后只有 n = 2; 这条语句组合,m = 3;这句不受if()判断的影响都将被执行到。