c++,数组索引需要是int吗?

标签 c++ arrays

在 c++ 中,const 数组 arr 包含 0 到 80 之间的 100 个数字。

如果我将 arr 中的数字选择为 char,它们是否会在每次用作索引时隐式转换为 int双指针,即 doublepointer[arr[i]]?

最佳答案

是的,它们将被转换为 int 类型。根据 C++ 标准,“下标运算符 [] 的解释方式使得 E1[E2] 与 *((E1)+(E2)) 相同。” 如果使用加法运算符,那么“通常的算术转换是为 算术或枚举类型的操作数。”这意味着当它们在表达式中用作下标运算符的索引时,char 类型的对象将被转换为 int 类型的对象。

请注意,根据您将选择的或默认设置的编译器选项,char 类型可能表现为 unsigned char 或 signed char。

对于可以在下标运算符中用作索引的类型,则它们要么是无作用域的枚举,要么是一些整数类型。

关于c++,数组索引需要是int吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25231679/

相关文章:

c++ 模板和多态性没有合适的用户定义转换

c++ - 按 vector 中的对象属性合并排序

c++通过枚举定义对象类型

c++ - 字符串赋值

java - 在java中合并数组

Javascript/JSON : Swap items in array

c++ - 如何使用C++从PCM样本中筛选出听力超出范围的数据?

c - 如何将字符串数组传递给该程序中的函数?

通过检查多个条件的 Javascript 数组过滤器

javascript - 返回数组中元素的索引范围