|
|
1
1
如果不为数组提供显式类型,编译器将尝试根据元素推断类型。如果你这样做
因为所有元素都是相同的类型,所以数组就是所有元素的类型。 如果你有这样的东西
编译器发现并非所有元素都是同一类型,但编译器可以采用一种路径,将所有元素隐式转换(或单独保留)为同一类型-双精度,因此数组是双精度,第三个元素隐式强制转换为双精度。 在您的示例中,编译器发现并非所有元素都是相同的显式类型,因此它会查看所有可能的隐式转换。因为它可以走不止一条路(坏元素->好,好元素->坏),所以它会举手,因为它不知道该怎么办 模棱两可的 。没有 “最佳类型” 因为这两个选项对编译器来说同样可行。 然而,对于程序员来说,数组变量的类型将影响代码的其余部分,因此需要预先确定。 有两种方法可以解决此问题:
|
|
Daniel · C#编译器在应该出错时失败 1 年前 |
|
|
Floris · 为什么cpp编译器在类型声明不正确时要转换为int? 1 年前 |
|
obtein · 内存流。写在客户端上有效,但在服务器上无效? 1 年前 |
|
|
kamkow1 · 匿名结构的初始值设定项错误无效 1 年前 |