【C语言】->关于逗号表达式

之前有个同学问了我一个代码,

#include <stdio.h>

int main() {
	int a = 3;
	int b = 6;

	printf("%d\n", (a,b));

	return 0;
}

这个代码的运行结果如下:
在这里插入图片描述
可以看到,输出的结果是6,也就是b的值,所以是为什么呢,只有一个%d但是却先输出了右边的值,我们去掉括号做一个对比。

#include <stdio.h>

int main() {
	int a = 3;
	int b = 6;

	printf("%d\n", a,b);

	return 0;
}

在这里插入图片描述
可以看到输出的是3,也就是a的值。

这就是C语言中一个有趣的运算符,逗号表达式,注意是 运算符
它的优先级最低,将两个及以上的式子连结起来,并从左向右依次运算,整个逗号表达式的值为最右边的表达式的值,如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值。

所以,这个代码还可以这么写:

#include <stdio.h>

int main() {
	int a = 3;
	int b = 6;
	int c = (a,b);

	printf("%d\n", c);

	return 0;
}

是不是很神奇,还可以这样对C赋值。
在这里插入图片描述
结果为6。
以上就是C语言一个简单但容易被忽视的小运算符,逗号。

发布了10 篇原创文章 · 获赞 24 · 访问量 2456

猜你喜欢

转载自blog.csdn.net/qq_45627684/article/details/104130797