c++ - 使用字符作为数组中的索引

标签 c++ arrays

#include<iostream>
using namespace std;
int main()
{
    int arr[128];
    arr['a'] = 101;
    cout<<arr['a'];

    return 0;
}

所以我进行了试验,发现字符可以用作数组中的索引,而不是传统的整数。 该程序给出了正确的输出,即正确的 101。

但这一切是如何运作的?比如空间分配和对该元素的引用。

问题:

  1. 声明了 128 个 int block ,总共 512 个字节。程序如何将“101”存储在 char block 中,即在占位符“a”中,它是 char?空间分配是什么样的?
  2. 当我将数组的索引数减少到 128 以下时,为什么这个程序不起作用?
  3. 程序如何通过“a”引用“101”,因为这不是映射而是数组?

最佳答案

'a' 是一个 char 类型,具有实现定义的数值(取决于平台上使用的字符编码:ASCII ,它是 97)。

该数字 char 用于计算 arr['a']。如果你幸运的话,那会给你一个 arr 的元素。如果该值超出 arr边界,则程序的行为未定义。

关于c++ - 使用字符作为数组中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63568237/

相关文章:

PHP如何从多维数组中删除键?

java - 检测未排序数组中的公共(public)元素

java - 用 Java 中的循环替换代码中的语句

c++ - 如何在 "#define"上定义动态值

Python ID3 标签、元组和字符串格式问题

c++ - 如何在 C++ 中将 getline() 拆分为数组

c++ - 以编程方式更改任务栏图标(Win32,C++)

javascript - 如何将变量分配给数组的对象?

c++ - WinAPI : Handling custom and default non-client controls

c++ - Qt5 Beta - 找不到 serviceframework.pro