24小时热门版块排行榜    

查看: 222  |  回复: 2

hzsh2009

铜虫 (小有名气)

[求助] C++中关于pointer的用法

如以下的代码,在void offsetVector(double &x0, double &x1, double &y0, double &y1,double offsetX, double offsetY) 这里为什么每个x0,x1,y0,y1前面用&这样的pointer表示呢?不用的话这个class貌似就没用了。谁能解释解释?谢谢!

#include
using namespace std;

void offsetVector(double &x0, double &x1, double &y0, double &y1,double offsetX, double offsetY) {
     x0 += offsetX;
     x1 += offsetX;
     y0 += offsetY;
     y1 += offsetY;
}

void printVector(double x0, double x1, double y0, double y1) {
     cout << "(" << x0 << "," << y0 << " -> ("<< x1 << "," << y1 << "" << endl;
}
int main() {
    double xStart = 1.2;
    double xEnd = 2.0;
    double yStart = 0.4;
    double yEnd = 1.6;
    double offsetX = 1;
    double offsetY = 1.5;
    offsetVector(xStart, xEnd, yStart, yEnd, offsetX, offsetY);
    printVector(xStart, xEnd, yStart, yEnd);

    system ("PAUSE";
    return 0;
// (1.2,2.0) -> (0.4,1.6)
}

[ Last edited by hzsh2009 on 2013-2-19 at 20:48 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
hzsh2009: 金币+4, ★★★很有帮助, 谢谢! 2013-02-20 21:49:10
函数的参数不具备返回值的能力,但是引用可以返回值
就是把x0+offsetX计算之后再放到x0那里,不然计算的结果放不到x0那里。
showmethemoney
2楼2013-02-20 14:22:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
hzsh2009: 金币+3, ★★★很有帮助, OK谢谢! 2013-02-20 21:49:25
&在c中是取地址,在c++中也可以用来表示引用,
引用你可以看做跟指针非常相似,如果在子函数中需要"改变参数并返回",除了指针,引用也是一个办法.引用的好处是,在子函数中,可以像正常变量一样使用,没有其他的符号(指针需要*).当然,这只是很小的一个区别.
关于引用在c++中的作用,建议搜索一下资料,一次解决.
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
3楼2013-02-20 16:53:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 hzsh2009 的主题更新
信息提示
请填处理意见