【发布时间】:2017-12-05 10:44:56
【问题描述】:
我是 C 的新手,我正在尝试创建一个基本的交换程序,有人可以解释一下为什么下面的代码不起作用。
#include <stdio.h>
void swap (int *p1, int *p2);
int *temp = *p1;
*p1 = *p2;
*p2 = temp;
int main ()
{
int x = 10;
int y = 20;
int *p1 = &x, *p2 = &y;
swap (p1, p2);
printf ("x: %d, y: %d\n", x, y);
}
提前致谢。
【问题讨论】:
-
启用编译器警告,你会看到问题。
-
temp应该只是int,而不是int* -
另外,你必须用
{ }写一个实际的函数... -
请贴出真实代码,此代码无法编译。
-
@Gaurav 代码怎么能按预期工作,甚至没有编译?