【发布时间】:2019-06-29 06:40:04
【问题描述】:
问题是这段代码不会交换这两个字符串。我是编程新手,但我可以说问题在于交换功能,但我不知道如何解决它。
我尝试在 swap 中添加 strcpy 而不是“=”,但没有奏效。
#include <stdio.h>
#include <stdlib.h>
void swap(char *t1, char *t2) {
char *t;
t=t1;
t1=t2;
t2=t;
}
int main() {
char *s[2] = {"Hello", "World"};
swap(s[0], s[1]);
printf("%s\n%s", s[0], s[1]);
return 0;
}
【问题讨论】:
-
不要忘记,在 C 中,所有函数参数都是按值传递的,这意味着它们的值是被复制的。当您更改副本时,原件不会更改。做一些关于在C中模拟通过引用传递的研究。
标签: c swap pass-by-value function-call