这是指向大小为3的字符数组的指针数组的正确语法吗?

时间:2014-02-23 21:31:56

标签: c++

我正在尝试创建自己的“自动更正”程序版本,以检查与给定单词类似的单词。为了实现这一点,我需要查看标准键盘上字母之间的距离,这样我就可以了解一个单词与另一个单词的“关闭”程度。

在我的程序中,我开始编写一个数组

const char[3]* KEY_DISTS[] = { "aa0", "ab5", "ba5", "ac3", "ca3", "ad2", "da2" ,... };

这意味着“a'和'a'之间的距离为0,'a'和'b'之间的距离为5,'b'和'a'之间的距离为5,”等等。

我接下来会将这些信息放在一个将字符对映射到整数的地图中,但是我想知道它到目前为止是否写得正确以及你是否对我有任何建议。

const char[3]* KEY_DISTS[]

应该是“指向大小为3的字符数组的常量指针数组”,对吧?

1 个答案:

答案 0 :(得分:1)

与标题匹配的声明将是:

const char (*arr[])[4] = { &"aa0" };

注意"arr"是一个包含四个字符的数组(它包括终止'\0'),你需要获取字符串文字的地址(它们是左值并具有静态存储持续时间,所以这是细)。

听起来你可以改为使用2D数组:

const char arr[][4] = { "aa0" };