【问题标题】:assigning tuple to an int variable and printing the variable将元组分配给一个 int 变量并打印该变量
【发布时间】:2021-11-29 13:27:08
【问题描述】:

我尝试将元组分配给 int 变量。这是我的代码。 i = (12, 45, 58, -1, 90, 100); 当我打印i 时,它显示100 的值。元组在 C 语言中是如何工作的?

谢谢

【问题讨论】:

  • 它没有。 C 不是 Python。 C 中没有元组。在 C 中,(1, 2, 3) 只是一个带括号的逗号操作序列,其计算结果为它们的第二个参数,因此它等价于 3。在您的示例中,您的“元组”仅计算为 100
  • 也许你需要arrays in c.

标签: c variable-assignment comma-operator


【解决方案1】:

右边的表达式是一个带逗号的表达式

i = (12, 45, 58, -1, 90, 100);

它的值和类型是最后一个操作数的值和类型。

其实上面的语句等价于

i = 100;

因为其他子表达式没有副作用。

来自 C 标准(6.5.17 逗号运算符)

2 逗号运算符的左操作数被评估为 void 表达;在它的评估和那个之间有一个序列点 的右操作数。然后对右操作数求值;结果 有它的类型和价值。

【讨论】:

  • 有意义的瓦尔德
【解决方案2】:

C 中,您可以使用structure 作为替代。

示例代码:

#include <stdio.h>
typedef struct
{
    int num1;
    int num2;
    char name[10];
}TupleInfo;

int main()
{
    TupleInfo tuple1 = {1, 2, "Marty"};
    printf("%d %d %s\n", tuple1.num1, tuple1.num2, tuple1.name);
    return 0;
}

输出:

1 2 Marty

注意:如果您想使用相似的数据类型,那么使用数组可能更方便。

要详细了解 C 中的结构,请查看以下资源:

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-11
  • 2015-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多