【发布时间】:2020-12-18 13:41:40
【问题描述】:
#include<stdio.h>
void swap (char *x, char *y)
{
char *t = x;
x = y;
y = t;
}
int main()
{
char *x = "geeksquiz";
char *y = "geeksforgeeks";
char *t;
swap(x, y);
printf("(%s, %s)", x, y);
t = x;
x = y;
y = t;
printf("n(%s, %s)", x, y);
return 0;
}
我希望原始指针会交换,但即使我将指针传递给函数,情况也并非如此,原因是它产生了本地指针? 如何使用函数交换原始指针?
【问题讨论】:
-
内部
swap、x和y是局部变量。因此,实际上,该功能在宏伟的计划中是无操作的。 -
另外,请避免将文字字符串分配给
char*。如果需要修改它,请考虑分配给const char*,或者将其声明为数组。