2014-10-29 51 views
-1

我是C++新手,我基本上是一个C程序员。目前我正在学习reference.It很混乱。在C中,一个指针是变量的地址,并且有一个不同的黑白指针和指针变量。然而多次指针变量作为指针变短手。如果指针是一个地址,那么什么是引用?

1.我的问题是,引用是什么意思然后在C++中引用和变量的地址意味着同样的事情?如果有人将指针与引用区分开来,他/她是指指针变量而不是指针。把指针变量写成指针?如果否,那么黑白指针和参考有什么不同?

2.In C & a = b是违法的。但在C++中它不是。为什么?请帮忙,因为我很困惑它。我曾经搜索过它,但找不到满意的答案。

+3

将引用看作“别名”。 – tadman 2014-10-29 17:14:15

+2

90%的时间参考是伪装的常量指针,它具有特殊的语法。 – 2014-10-29 17:16:05

+1

'&a=b;'在C++中无效,就像在C中一样。 – interjay 2014-10-29 17:16:24

回答

0

指针可以为空。你可以对指针进行算术运算。

引用不能为空&必须引用一个对象。你不能算术引用。

+3

当你说“不行”时,小心。 C++通常不会阻止你做某件事,即使这件事完全是疯狂的。 – tadman 2014-10-29 17:14:46

+1

@tadman:除非您超出语言范围,所有投注都关闭,否则它们不能为空。但是这种限制总是隐含的,只要我们不在比赛中如何最艺术地调用UB。 – Deduplicator 2014-10-29 17:17:32

+0

'char * x = NULL; char&y = * x;'你可以无意中做这样的事情。说它们通常不是NULL,可能更安全,如果它们可能是一个错误,那里的指针往往是NULL,所以在解引用它们时需要特别小心。 – tadman 2014-10-29 17:19:46

相关问题