首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

新手学指针的有关问题

2012-02-23 
新手学指针的问题#include iostreamintsub(int*,int*)//声明sub函数,并有两个整形的指针参数intmain(){

新手学指针的问题
#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)

热点排行