【发布时间】:2011-05-30 18:50:33
【问题描述】:
这是我的第一篇文章。
我有这个函数用于在 C 中反转字符串 我发现的。
void reverse(char* c) {
if (*c != 0) {
reverse(c + 1);
}
printf("%c",*c);
}
它工作正常,但如果我更换:
reverse(c + 1);
与:
reverse(++c);
原始字符串的第一个字符被截断。我的问题是为什么会是 在这种情况下语句不等效?
谢谢
【问题讨论】:
-
如果您将
printf调用中的*c更改为*--c,它将正常工作。
标签: c pointers increment operator-keyword