【问题标题】:How does comma separator in these declarations work in C++? [closed]这些声明中的逗号分隔符在 C++ 中如何工作? [关闭]
【发布时间】:2018-02-13 20:55:42
【问题描述】:

我不清楚以下包含逗号的声明;关于左侧变量如何映射到右侧值。因此,在每种情况下分配给左侧变量的值是多少?

声明 1:

long int x, y, z = d[0], k, len;

声明 2:

long int x, y, z = d[0], k;

(考虑long int d[100] 数组是较早启动的,并已分配值。)

【问题讨论】:

  • 您到底对什么感到困惑?第一个声明创建 5 long ints,而第二个声明创建 4。
  • 究竟是什么让您感到困惑?这些声明引用d 数组中声明的第一个元素。
  • 避免混淆的一个好主意是分别声明每个变量。保存字符可能对 K&R 有好处,其Teletype terminal 的界面为每秒 10 个字符。
  • 标记为 off-topic 关闭为 unclear
  • “我很困惑”不是一个明确的编程问题。

标签: c++


【解决方案1】:
long int x, y, z = d[0], k, len;

这里声明了5个变量,都是long int

xyklen 未初始化。

z 被初始化为d[0]

如果你这样写,也许更容易理解声明:

long int x, 
         y, 
         z = d[0], 
         k, 
         len;

【讨论】:

  • “也许它更容易理解......”如果这个(简单格式)是个好建议,我仍然有偏见。提及更好的做法使用单独的变量声明(尤其是在指针或引用方面)应该是值得的。
  • @TheDude,最佳实践是编写清晰的代码。对我来说,上述内容比您的建议更清楚。
  • 等等!与简单地分解 multiline 变量声明相比,拥有单独的变量声明不太清楚?认真的吗?
  • 是的,我想是的。你不这么认为。所以我的看法和你的看法不一样。大不了。
猜你喜欢
  • 2018-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-17
  • 2018-07-10
  • 1970-01-01
相关资源
最近更新 更多