Arm*_*yan 3 c++ syntax comma-operator
double x = 0,1;
Run Code Online (Sandbox Code Playgroud)
不编译(尝试在MSVC9.0上).错误是
C2059 syntax error : 'constant'
Run Code Online (Sandbox Code Playgroud)
我确实知道那里有一个逗号而不是一个点,但上面的行不应该被解释为以下几行吗?
double x = (0,1); //which is double x = 1;
Run Code Online (Sandbox Code Playgroud)
顺便提一下,初始化用括号成功编译.
我正在考虑operator ,优先级低的行operator =,但在这种情况下=不是运算符,所以这应该不是问题.什么句法规则决定了这一点
double x = 0,1;
Run Code Online (Sandbox Code Playgroud)
应该是非法的?
Luc*_*ore 11
好吧,它被视为
double x = 0; double 1;
Run Code Online (Sandbox Code Playgroud)
这就是为什么.就像你写的那样
double x = 0, y;
Run Code Online (Sandbox Code Playgroud)
这是声明的语法,你只是试图声明1为变量(这是错误的).不要以为还有更多......
在声明期间,没有括号的逗号被视为声明之间的分隔符.例如:
double x = 0, y = 1;
Run Code Online (Sandbox Code Playgroud)
要么
double x = 0, y;
Run Code Online (Sandbox Code Playgroud)
你输入的是相当于
double x = 0;
double 1;
Run Code Online (Sandbox Code Playgroud)
这显然是不正确的.
| 归档时间: |
|
| 查看次数: |
623 次 |
| 最近记录: |