int main()
{
int a=1;
int b=2;
swap(a,b);
printf("%d %d",a,b);
}
void swap(int a, int b)
{
int t=a;a=b;b=t;
}
下断点调试了下,swap(a,b);根本没有执行你定义的那个,而是系统标准库的那个,所以交换成功了。
可以提前把swap函数声明一下
你子函数没有声明,主函数运行到调用子函数那一句便会出错,提示没有定义swap()函数。
不管使用函数还是变量,都必须先声明后使用,这是原则。
所以如果不声明swap函数,这个程序是不能通过编译的,至少在VS2010,VC6.0,DeVC++这三个编译器上面不能通过编译(我都试过啦)。
如果在使用之前声明了swap函数,两个数字也不会交换的,因为是传的值,而不是地址。