【发布时间】:2013-01-26 01:11:31
【问题描述】:
我看过这段代码:
void reverse_string(char *str)
{
/* skip null */
if (str == 0)
{
return;
}
/* skip empty string */
if (*str == 0)
{
return;
}
/* get range */
char *start = str;
char *end = start + strlen(str) - 1; /* -1 for \0 */
char temp;
/* reverse */
while (end > start)
{
/* swap */
temp = *start;
*start = *end;
*end = temp;
/* move */
++start;
--end;
}
}
而且我不明白为什么函数中没有传递指向指针的指针。如果在函数内部制作了传递的指针的副本,那么如何反转它呢?更改是如何传播到外部的?
【问题讨论】:
-
想想指针指向什么。这个函数和调用者的那个地方是一样的。