代码之家  ›  专栏  ›  技术社区  ›  Y.T. Ingo Leonhardt

C++语法问题——为什么我不能用逗号分隔不同类型的变量定义

  •  3
  • Y.T. Ingo Leonhardt  · 技术社区  · 4 年前
    int main() {
      std::cout << 1, std::cout << 2;
      return 0;
    }
    

    int main() {
      int a, std::string b;
      return 0;
    }
    

    这将返回一个错误

    “b”前应有初始值设定项

    为什么会这样?在某些情况下我不能用逗号来分隔语句吗?例如在这种情况下变量的定义?

    1 回复  |  直到 4 年前
        1
  •  5
  •   Nate Eldredge    4 年前

    逗号 从未 单独陈述。第一个示例是一个语句,由一个包含 comma operator . 就像你写了两个陈述一样 std::cout << 1; std::cout << 2; 但它们在句法上并不对等。

    int a, b; 有一些变化,比如 int a, *b; ,但这仍然是一个声明语句。