跳转至

1.3 注释简介

练习 1.7

编译一个包含不正确的嵌套注释的程序,观察编译器返回的错误信息。

int main()
{
    /*
     *
     */*
     **/
     *
    /* 
    return 0;
}

错误信息:

demo1_07.cpp:9:2: error: unterminated comment
  /* 
  ^
demo1_07.cpp: In function ‘int main()’:
demo1_07.cpp:7:5: error: expected primary-expression before ‘/’ token
   **/
     ^
demo1_07.cpp:8:3: error: expected primary-expression at end of input
   *
   ^
demo1_07.cpp:8:3: error: expected ; at end of input
demo1_07.cpp:8:3: error: expected } at end of input

练习 1.8

指出下列哪些输出语句是合法的(如果有的话):

std::cout << "/*";
std::cout << "*/";
std::cout << "/* "*/" */";
std::cout << "/* "*/" /* "/*" */";

预测编译这些语句或产生什么样的结果,实际编译这些语句来验证你的答案(编写一个小程序,每次将上述语句作为其主体),改正每个编译错误。

#include <iostream>

int main()
{
    std::cout << "/*";
    std::cout << "*/";
    std::cout << /* "*/" */;
    std::cout << /* "*/" /* "/*" */;

    return 0;
}

错误信息

demo1_08.cpp:7:21: warning: missing terminating " character [enabled by default]
  std::cout << /* "*/" */;
                     ^
demo1_08.cpp:7:2: error: missing terminating " character
  std::cout << /* "*/" */;
  ^