【发布时间】:2017-03-11 14:05:24
【问题描述】:
我在 gcc 中尝试了以下代码:
#include<stdio.h>
int main()
{
int a=3,2,1;//////////////////////ERROR!//////////////////////////
printf("%d", a);
return 0;
}
我预计它会成功编译为:
- 一系列以逗号分隔的整数表达式将从左到右进行计算,最右边的表达式的值将成为逗号分隔表达式的总值。
那么,整数变量a的值应该是1吧?还是3?
当我尝试执行这个程序时为什么会出现这个错误?
错误:预期的标识符或数字常量前的“(”
【问题讨论】:
-
不是1也不是3,是语法错误
-
没有逗号操作符。逗号是声明的一部分。
-
@Gabriel:没有研究工作?
-
@Olaf 也许吧。但如果是这里的重点,this question 不应该有那么多赞成票(这只是一个例子)。
-
@Olaf 这甚至与我的意思相去甚远。我的观点是:研究工作量低的问题可能是一个好问题(所以我以另一个问题为例)。这里的这个问题很有趣而且写得很好,因此不值得投反对票。
标签: c gcc variable-assignment comma-operator