【发布时间】:2014-05-06 03:21:22
【问题描述】:
我开始用 c 编程,然后在 Java 和 c# 上做了一点工作。
- 所以我对一个对象(类的实例)的理解是,它就像一个指向存储在内存中的实例的指针(可能是指向整个实例的第一个内存单元...类似于结构或数组 A [] 的初始地址存储在 A) 中。
我上面的理解正确吗?
-
最近我一直在经历差异 b/n 参考和 c++中的指针。这是我阅读时变得更加混乱的地方 更多。喜欢:
When to use references vs. pointers
What are the differences between a pointer variable and a reference variable in C++?
从上面的阅读中我了解到两者都是相同的,除了引用不取 null 来保护你。
我不明白的一点是他们说: 指针变量初始化后可以重新赋值,但是引用变量不能。但是我测试了这个场景,编译器允许我重新赋值,它依赖于编译器吗?? 如果根本无法重新分配不同的值,那么'pass by ref'有什么用(在c ++中)?
也有人可以推荐一个可靠且酷的 c++ 在线资源,例如 c# 的 msdn
如果有一种简单的方法可以在 c++ 中查看存储在引用变量中的地址,那就太好了
【问题讨论】:
-
引用本身不能引用新变量。并且 C# 具有按引用传递(我假设您的意思是
ref),因为值类型是按值传递的。 Java 也有这些(原语),但不允许您像 C# 那样创建自己的(尽管有限)。 C++ 默认是按值传递的。 -
C++ 的最新参考资料是cppreference.com。
-
我在 google 上找到了很多 cplusplus.com.. 够好吗
-
Greg Hewgill 在他的 cmets 中回答了这个问题。再次感谢他