新手学指针的问题
#include <iostream>
int sub(int*,int*); //声明sub函数,并有两个整形的指针参数
int main()
{
using namespace std;
int a=100,b=200;
cout < < "Before,print a and b: " < <a < < " and " < <b < < "\n ";
cout < < "Go to sub()... " < < "\n ";
sub(&a,&b); //传递整形a和b的地址到sub()
cout < < "After,print a and b: " < <a < < " and " < <b < < "\n ";
return 0;
}
int sub(int *x,int *y) //x,y即,a和b的地址,传入函数中
{
int temp;
temp=*x; //将X地址处的值,赋给整形temp
*x=*y; //将y地址处的值,赋给x地址指向的内存
*y=temp; //将整形temp的值,赋给y地址指向的内存
return *x,*y; //返回x地址和y地址处的值
}
注释里这样的理解正确吗????
[解决办法]
return *x,*y; //返回x地址和y地址处的值
return 在这里只能返回一个int值,
同时由于这里参数使用了传指针,在函数里已经将x,y所指地址的内容改变了,不需要返回!可以将sub改为:
void sub(int*,int*);
[解决办法]
不用返回,a和b的值已经被修改了
去掉return *x,*y;
int sub(int *x,int *y)改为void sub(int *x,int *y)