代码重写更清晰
void indexe(char * line, unsigned ref) {
unsigned i = 0;
char word[128]; //(1)
//char * word; //(2)
while(*line) {
if(isalpha(*line))
word[i++] = *line; //(1)
//*word++ = *line; //(2)
*line++;
}
}
int main(int argc, const char * argv[]) {
char line[128];
FILE * f = fopen(argv[1], "r");
unsigned x = 0;
while (fgets(line, 128, f)){
indexe(line, ++x);
}
fclose(f);
return 0;
}
您好,以上两种组合我都试过了:
单词[] -> 单词[i++]
*单词-> *单词++
整个事情完美无缺,除非在达到 EOF 时,在这种情况下,指针语法因分段错误而失败,但不是数组语法。
我是一个 C 初学者,有人可以用初学者的术语解释这里发生了什么,也许可以提出一个解决指针语法的解决方案?(但请解释一下)