若有函数定义 int fun(){ a=4,b=3,c=2;return a,b,c;},则调用函数fun后的返回值是?为什么答案写的2不能理解
这里考的是逗号运算符
逗号运算符中,看逗号右侧的表达式
其实是逗号运算符,逗号运算符优先级别最低,它将两式联接起来
如:(表达式1,表达式2)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值
如:(表达式1,表达式2,表达式3)称为逗号表达式,其求解过程先表达式1,后表达式2,再表达式3,整个表达式值是表达式3的值
注意:逗号右侧不是直接等于最右边的表达式,而是经过逐一运算后,表达式值等于最右侧的表达式的值
向下面的代码输出的是4,而不是2
#include <stdio.h>
int fun()
{
int a = 1;
return a += 1, a += 1, a += 1;
}
int main()
{
printf("%d",fun());
return 0;
}
逗号也是运算符,记住这个规则知道语法就行了,不用去纠结它,意义不大,因为平时写项目都不会这么用的,
return a,b,c,d;的意思就是返回d
return a,b,c;的意思就是返回c
return a,b;的意思就是返回b
总结,返回以逗号分隔几个变量或者表达式最终返回的是最后一个变量或表达式
return a||b的意思就是如果a是true则返回a,否则返回b
return a&&b的意思就是如果a是true就则返回b,否则返回a