【发布时间】:2014-02-13 04:13:00
【问题描述】:
我正在研究一个项目的算法,我遇到了一些我认为可能有用的代码。但是,当我尝试阅读代码时,我在理解代码中的语句时遇到了一些困难。这是代码。
int firstWord[MAX_WORD_SIZE] = {0}, c = 0;
while (word1[c] != '\0') //word1 is char[] sent as a parameter
{
firstWord[word1[c]-'a']++;
c++;
}
我理解(我希望是正确的)第一行是设置一个最大大小的整数数组,并将元素初始化为零,同时使初始计数器值“c”为零。
我知道 while 循环正在循环遍历 word1[] 数组的所有字符,直到到达最后一个字符 '\0'
在线困惑firstWord[word1[c]-'a']++;
word1[c] 应该给出一个字符,那么 -'a' 做什么呢?这是否将 char 转换为允许您访问 firstWord[] 数组的元素并使用 ++ 递增的整数?如果有,word1[c]-'a' 给出的是哪个元素或整数?
【问题讨论】:
-
This table 可能会帮助您更好地理解该表达式。
-
查看表中字母旁边标有
dec的列。然后考虑正在完成的数学运算(在这种情况下是减法)。 -
谢谢,对不起,我删除了我的评论,因为我在问你之后就发现了我的问题。感谢您的帮助!