【发布时间】:2011-01-19 11:38:05
【问题描述】:
请在回答之前阅读。我不想让你为我陈述显而易见的事情。谢谢:D
我试图区分指针和按值传递。而且我想我理解它们,但是我正在阅读的来源不清楚的一件事是传递指针和按值传递之间的区别。考虑以下...
andy = 25;
fred = andy;
ted = &andy;
第一行将值 25 传递给 andy。第二行将andy 的值传递给fred。现在 fred 拥有值 25。第三行传递对 ted 的引用。现在ted保存了andy的内存地址,其中保存了25的值。现在看下一段代码
andy = 25;
fred = andy;
ted = &andy;
joe = *andy;
上面的代码看起来就像第一个sn-p,只是我们将andy的指针传递给了joe。现在 joe 拥有 25 的指针值。这几乎与刚刚执行 (joe = andy) 相同。没有*
传递指针值与只传递值有什么区别???
在我的解释中,如果后来我决定更改 andy/ 的值,与我只是按值传递相比,joe 的指针值似乎仍然受到影响,它不会受到影响。 T
据我所知,通过引用传递和通过指针传递之间的唯一区别是一个保存地址,另一个保存该地址内的值。如果任何持有该值引用的变量决定更改它,它仍然可以更改。如果是这样的话,按引用传递和按值传递又有什么意义。
这是我正在阅读的链接
http://www.cplusplus.com/doc/tutorial/pointers/
谢谢大家!!!
【问题讨论】:
-
按值/引用传递不同于赋值。
-
这个问题不输入变量是没有意义的。没有打字,您无法分辨 & 的含义。你也没有“传递”任何东西。
-
我刚刚发送了一个指向我所指内容的链接。如果您不明白我在说什么,那么链接可能会更好地解释它。而且我认为您至少应该让我在回答我的问题之前详细说明一下。毕竟我是在寻求帮助和 C++ 的新手。
标签: c visual-studio visual-c++ visual-studio-2008