这些声明中的逗号分隔符在 C++ 中如何工作? [关闭]

Posted

技术标签:

【中文标题】这些声明中的逗号分隔符在 C++ 中如何工作? [关闭]【英文标题】:How does comma separator in these declarations work in C++? [closed] 【发布时间】: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 “我很困惑”不是一个明确的编程问题。 【参考方案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 变量声明相比,拥有单独的变量声明不太清楚?认真的吗? 是的,我想是的。你不这么认为。所以我的看法和你的看法不一样。大不了。

以上是关于这些声明中的逗号分隔符在 C++ 中如何工作? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何将在一行中输入的以逗号分隔的数字放入Java中的数组中

如何将数字转换为 Klaviyo 中的逗号分隔值

如何在 CSV 文件中的公式中转义逗号

c++ 添加逗号分隔值

如何从用户输入中拆分逗号分隔的字符串

MySQL - 如何选择表中的行,其中 id 值位于另一个表中的逗号分隔字段中?