【发布时间】:2015-01-03 22:20:36
【问题描述】:
我试图理解这个算法,它就地反转 C 风格的字符。我不明白* 在字符串之前的上下文和“char * end”的上下文中表示什么。感谢您的帮助!
void reverse(char *str) {
char * end = str;
char tmp;
if (str) {
while (*end) {
++end;
}
--end;
while (str < end) {
tmp = *str;
*str++ = *end;
*end-- = tmp;
}
}
}
【问题讨论】:
-
这是一个指向
char类型的指针...已经有一段时间了,但它似乎在做一些指针运算,在连续的内存位置之间移动 -
那个标签 [java] 正确吗?
-
这不会在 Java 中编译。
-
那是不是 Java。那是好老
C -
我在字符串前没有看到任何 *。