以下程序的输出是什么?
void swap(int a, int b);
int main()
{
int a = 5;
int b = 6;
swap(a,b);
printf("%d-%d\n", a, b);
return 0;
}
void swap(int a, int b)
{
int t = a;
a = b;
b = t;
}
正确答案应当是5-6
楼主不明白为何调用swap函数后ab的值仍没有发生改变?
以下程序的输出是什么?
void swap(int a, int b);
int main()
{
int a = 5;
int b = 6;
swap(a,b);
printf("%d-%d\n", a, b);
return 0;
}
void swap(int a, int b)
{
int t = a;
a = b;
b = t;
}
正确答案应当是5-6
楼主不明白为何调用swap函数后ab的值仍没有发生改变?
因为你void swap(int a, int b) 定义时少了引用 & ,所以相当于只是对a,b的副本进行交换,这不会影响到a,b本身