将元组分配给一个 int 变量并打印该变量

assigning tuple to an int variable and printing the variable

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

谢谢

右边的表达式是带有逗号运算符的表达式

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

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

其实上面的语句等同于

i = 100;

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

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

2 The left operand of a comma operator is evaluated as a void expression; there is a sequence point between its evaluation and that of the right operand. Then the right operand is evaluated; the result has its type and value.

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 语言结构的更多信息,请查看以下资源: