我做了一个代码来交换两个字符串:
void swap (char *a, char *b)
{
char *t = a;
a = b;
b = t;
}
int main()
{
char * strings[2];
strings [0] = "luck!";
strings [1] = "good ";
swap (strings[0], strings[1]);
printf( "%s %s\n",strings[0], strings[1]);
return 0;
}
它失败了。我难以理解的是当我打电话时swap()
我传递了两个指针。两个指针都指向它们分配的数组的第一个字符。然后我在函数内部创建了一个临时指针并执行基本切换。这里有什么缺陷?我真的很想了解为什么这种方法是错误的?