c语言中k=(a=2,b=3)是什么意思

来源:百度知道 编辑:UC知道 时间:2024/06/05 12:09:41
最近在做itat的模拟题 遇到个问题 有没有大虾帮忙看看!

这就相当于是一个赋值语句,()里是一个逗号表达式,逗号表达式最终结果取决于最后一个式子,所这个语句的意思是: k=b 即 k=3;

如下程序:
#include <stdio.h>
main()
{ int a,b;
int k=(a=2,b=3);
printf("%d\n",k);
}

运行结果为:
3
Press any key to continue

希望能对楼主有所帮助!

,运算符取最后一个表达式的值
k=(a=2,b=3)只是为了方便写在一起

相当于
a=2;
b=3;
k=b;

a=2,b=3
是逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为

表达式1,表达式2....表达式x

逗号表达式的求解过程是:先求解表达式1,再求解表达式2.....整个逗号表达式的值是表达式x的值。
所以K=3.
如果没有小括号,即:k=a=2,b=3
那么逗号运算符优先级底于赋值运算符,那么K=2,整个式子的值是3....

对2楼的答案进行下补充
b=3这一赋值表达式的返回值是3

严重统一 bati8888
又是一个中谭浩强毒的同学。