c++ - 为什么二维整数数组适用于字符?

标签 c++ arrays multidimensional-array hash

我已经声明了一个 2D int 数组。但这也适用于角色。

int has[MAX][2];
void check(char* arr, int n) {
     int i;
     for(i=0;i<n;i++) {
            has[arr[i]][1]=0;       
     }
     for(i=0;i<n;i++) {
          has[arr[i]][0]=1;
          has[arr[i]][1]++;
     }
     cout<<has['i'][1];
}

最佳答案

当你像这样声明一个数组时:

    int has[300][2];

然后你像这样访问它的成员:

    has['x'][3]   

    has['i'][1]

您使用的是字符而不是数字作为数组第一个索引。

所以,在最后一个例子中,'i',它是一个字符,被转换成它的 ascii 值,即 (dec) 105,所以结果将是:

  has[105][1]

关于c++ - 为什么二维整数数组适用于字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48886879/

相关文章:

c++ std::forward 在容器上调用 operator[]

javascript过滤器编辑并保存数组

php - 如何对包含对象的 3 维数组进行排序?

c++ - 数组 vector 是否连续?

c# - 遍历列表并将值添加到二维数组

c++ - qt 我如何将 cFilename 转换为 QString 类型

c++ - 使用转换函数直接初始化

c++ - 如何解决错误LNK2019 : unresolved external symbol

javascript - 如何在Javascript中合并两个不同的数组?

python - 为什么 len(a[0]) 与 a.shape[1] 不同