gpt4 book ai didi

c++ - C/C++中使用字符作为数组下标

转载 作者:行者123 更新时间:2023-11-28 00:55:24 25 4
gpt4 key购买 nike

用字符做数组下标可以吗?

我的数组被初始化为容纳 256 个对象,因此越界访问似乎不是问题。但是,我遇到了一些奇怪的段错误,我发现这是因为我正在读取的字符值在某些情况下是负数。

不过,我不知道这怎么可能。然后,我将它转换为一个 unsigned char,但这也不起作用。我最终也在那里遇到了边界问题。我还尝试将 char 变量转换为 int,然后访问该数组,但我仍然遇到分段问题。

我可以做些什么来缓解这种情况?能够通过字符访问数组很好,因为我的程序为 ASCII 集中的每个字符都有一个数组单元格。好像有道理,就是不知道为什么不行。

最佳答案

使用字符类型的值作为数组索引是完全有效的。数组索引可以是任何整数类型; charunsigned charsigned char都是整数类型。

但是普通 char 可以是有符号的或无符号的,这取决于实现。要么与 signed char 具有相同的范围,要么与 unsigned char 具有相同的范围;无论哪种方式,它仍然是一个独特的类型。

因此,如果你有一个包含 256 个元素的数组,你可以安全地使用 unsigned char 对其进行索引,它的范围至少为 0 到 255。你不能安全地使用 对其进行索引>char,因为它可能有负值。

Then, I casted it to an unsigned char, but that didn't work either. I ended up getting boundary issues there as well.

如果没有更多信息,我无能为力。

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com