double x = 0,1;
不编译(在MSVC9.0上尝试)。错误是
C2059 syntax error : 'constant'
i do 意识到那里有一个逗号,而不是要点,但是上面的行不应该解释为以下内容?
double x = (0,1); //which is double x = 1;
顺便说一句,初始化用括号成功编译。
我一直在思考operator ,
比operator =
低的优先级,但是在这种情况下,=
不是操作员,因此这不是问题。什么句法规则决定
double x = 0,1;
应该是非法的吗?
好吧,它被视为
double x = 0; double 1;
这就是原因。就像你写
double x = 0, y;
这是声明的语法,您只是试图将1
声明为变量(这是错误的)。不要以为还有更多...
在声明期间,在没有括号的情况下,逗号被视为声明之间的分离器。例如:
double x = 0, y = 1;
或
double x = 0, y;
您输入的是
的等效物double x = 0;
double 1;
显然是不正确的。