除以指针值和注释符号

时间:2017-01-23 06:45:20

标签: c++ visual-studio

我有这个案子:

int a=5;
int b=6;
int *p_a=&a;
int *p_b=&b

std::cout << *p_a / *p_b;

看起来很好。但是,如果我删除分区符号/*p_a之间的空格,请执行以下操作:

std::cout << *p_a /*p_b;

编译器将/*理解为评论。

这种行为是标准行为吗?我甚至没有*/作为评论的结束符号。

注意:我在MSVS 2013上。

修改

这似乎是一种标准行为,因为SO代码格式化也将其视为注释:D

1 个答案:

答案 0 :(得分:1)

这是标准行为。 n4296草案在2.7评论[lex.comment]

中说
  

字符/*开始注释,注释以字符* /结尾。这些评论没有嵌套......

这意味着如果删除/*之间的空格,任何符合要求的C ++编译器都会将其视为(此处未终止的)注释的前导序列。