我尝试将元组分配给int
变量。这是我的密码。i = (12, 45, 58, -1, 90, 100);
当我打印i
时,它显示了100
的值。元组在C语言中是如何工作的?
感谢
右侧表达式是一个带有逗号运算符的表达式
i = (12, 45, 58, -1, 90, 100);
其值和类型是最后一个操作数的值和类型。
事实上,上述声明相当于
i = 100;
因为其他子表达式没有副作用。
来自C标准(6.5.17 Comma操作员)
2逗号运算符的左操作数计算为void表示它的评估和右侧操作数的。然后计算右侧操作数;结果有其类型和值。
在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 %sn", tuple1.num1, tuple1.num2, tuple1.name);
return 0;
}
输出:
1 2 Marty
注意:如果您想使用类似的数据类型,那么使用数组可能会更方便。
要了解更多关于C中结构的信息,请查看以下资源:
- C结构
- C中的结构