吾爱程序员:这里有好玩的游戏和软件
当前位置:首页C语言教程 → 逗号运算符问题

逗号运算符问题

来源:网络 | 更新时间:2022-01-10 13:04:57
考虑以下 C 程序。
// PROGRAM 1
#include<stdio.h>

int main(void)
{
int a = 1, 2, 3;
printf("%d", a);
return 0;
}
上面的程序编译失败,但下面的程序编译正常并打印 1。
// PROGRAM 2
#include<stdio.h>

int main(void)
{
int a;
a = 1, 2, 3;
printf("%d", a);
return 0;
}
下面的程序打印出 3,为什么?
// PROGRAM 3
#include<stdio.h>

int main(void)
{
int a;
a = (1, 2, 3);
printf("%d", a);
return 0;
}
在 C/C++ 程序中,逗号用于两种情况:(1) 分隔符 (2) 运算符。 逗号在 PROGRAM 1 中用作分隔符,我们在该程序中得到编译错误。 逗号在 PROGRAM 2 中用作运算符。逗号运算符的优先级在运算符优先级表中最少。因此赋值运算符优先于逗号,并且表达式“a = 1, 2, 3” 等同于“(a = 1), 2, 3”。这就是为什么我们在第二个程序中得到输出为 1 的原因。 在 PROGRAM 3 中,使用了括号,因此首先执行逗号运算符,我们得到的输出为 3    

最新文章

热点资讯

手游排行榜

CopyRight 2020-2030吾爱程序员

鄂ICP备2021004581号-8

本站资源收集于网络,如有侵权请联系我们:35492删除0109@qq.com