这是我的第一篇文章。
我有这个函数可以在 C 中反转字符串 我发现的。
void reverse(char* c) {
if (*c != 0) {
reverse(c + 1);
}
printf("%c",*c);
}
它工作正常,但如果我更换:
reverse(c + 1);
与:
reverse(++c);
原始字符串的第一个字符被截断。我的问题是为什么 在这种情况下语句不等价?
谢谢
最佳答案
因为 c + 1
不会更改 c
的值,而 ++c
会。
关于c - 指针运算中的一元递增运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4532750/