初菜鸟求教一个小题目!
本帖最后由 jsjisweet 于 2012-11-15 21:44:59 编辑 据说是腾讯10年面试题,群里一些大哥哥们分享的!
题目: 以下2个程序是否能是现在两数互换?为什么?
上代码:第一个:
#include <iostream>
using namespace std;
void swap(int *p, int *q)
{
int *temp;
temp=p;
p=q;
q=temp;
}
int main()
{
int a=1,b=2;
swap(a,b);
return 0;
}
第二个:
#include <iostream>
using namespace std;
void swap(int *p, int *q)
{
int *temp;
*temp=*p;
*p=*q;
*q=*temp;
}
int main()
{
int a=1,b=2;
swap(a,b);
return 0;
}
[解决办法]
两个都是不可以的,应该改成这样:
#include <iostream>
using namespace std;
void swap(int *p, int *q)
{
int temp;
temp=*p;
*p=*q;
*q=temp;
}
int main()
{
int a=1,b=2;
swap(&a,&b);
return 0;
}