#include<iostream>
using namespace std;
int main()
{
int arr[128];
arr['a'] = 101;
cout<<arr['a'];
return 0;
}
所以我进行了试验,发现字符可以用作数组中的索引,而不是传统的整数。 该程序给出了正确的输出,即正确的 101。
但这一切是如何运作的?比如空间分配和对该元素的引用。
问题:
- 声明了 128 个 int block ,总共 512 个字节。程序如何将“101”存储在 char block 中,即在占位符“a”中,它是 char?空间分配是什么样的?
- 当我将数组的索引数减少到 128 以下时,为什么这个程序不起作用?
- 程序如何通过“a”引用“101”,因为这不是映射而是数组?
最佳答案
'a'
是一个 char
类型,具有实现定义的数值(取决于平台上使用的字符编码:ASCII ,它是 97)。
该数字 char
用于计算 arr['a']
。如果你幸运的话,那会给你一个 arr
的元素。如果该值超出 arr
的边界,则程序的行为未定义。
关于c++ - 使用字符作为数组中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63568237/