【发布时间】:2021-05-13 14:35:51
【问题描述】:
我有以下 switch 语句实际上可以正常工作。
for (n = 0; n < 10; n++){
switch(results[r][n]){
case 0:
result[r][n] = "FAIL";
break;
case 1:
result[r][n] = "PASS";
break;
default:
break;
}
}
我的问题是为什么这会起作用,它应该起作用还是有更好的方法来做到这一点? 这是您应该如何在开关中实现多维数组的方式吗? (r = 0 或 1) 编译器如何知道 case 0: 是指 r 还是 n?
【问题讨论】:
-
这里没有足够的代码来确切地知道发生了什么,但如果我猜的话,我会说
results是一个普通的ints 的二维数组,并且results[r][n]指向一个int。不知道你为什么认为那行不通。 -
请注意,
result与results是不同的数组。 -
没错,我只是想弄清楚编译器如何知道 case 0: 和 case 1: 指的是数组的 [r] 组件而不是 [n]
-
case 0指的是results[r][n],而不是r或n。case之后的值与switch()中的值匹配。 -
您需要显示更多代码上下文。请添加minimal reproducible example 我们不知道
results或result类型是什么。
标签: c++ switch-statement