我相信我想做的事情可能是有效的,因为它在两种情况下都用逗号分隔(不是典型的作业),但我不确定并且搜索不会显示有关这两个的任何内容具体情况。
在这两种情况下,我都使用变量作为两个并行数组的索引。
int a[3] = {10, 20, 30};
int b[3] = {20, 40, 60};
Run Code Online (Sandbox Code Playgroud)
情况#1:初始化数组的结构
struct testStruct {
int t1;
int t2;
};
int i = 0;
testStruct test = {a[++i], b[i]}
Run Code Online (Sandbox Code Playgroud)
最终行的预期结果:test = {20, 40}
情况#2:将数组中的特定值作为函数参数传递
void testFunc(int t1, int t2) {
// do stuff
}
int i = 0;
test(a[++i], b[i]);
Run Code Online (Sandbox Code Playgroud)
最终行的预期结果:test(20, 40)
这是有效的代码吗?如果是,它在所有编译器中都有效吗?
结果是我期望的吗?如果是这样,是因为数组还是因为逗号?
谢谢!