昨天在面试时,面试的老师问了这样一个问题:“在C语言中,指针与引用有什么区别”。
我没有听说过C语言中的引用,只好将指针稍微说了下,当提及引用时,我说我不知道。
回家后在网上查阅了下资料,有关问题是这样说的:
C语言没有引用啊,C++才有.
引用能起到指针的部分作用,但是比指针安全.
一个引用可以看作是某个变量的一个"别名"。对引用进行操作就像对原变量进行操作一样。
主要用于函数的参数传递时使用。因为C语言没有类似VB的“传引用调用”这个功能,所以C++的引用填补了这个空白。从此即使需要改动参数,也直接传递一个变量过去即可。这在操作符重载中有更重要的意义。等你学到以后才会明白。
int a; //声明变量a
int& ra = a; //声明一个引用,名字是ra,ra引用了a
注意,ra声明的时候必须同时给出它到底引用了谁
int& ra; //只声明不指明是不对的。
还有,引用一旦声明,就不能再修改到其他变量上了,这与指针不同。
ra = b; //这是不行的,因为已经int &ra = a了
原文见:http://zhidao.baidu.com/question/19449593
C++中引用和指针的区别:1、引用在定义时就应初始化,而指针不用。而且在任何情况下都不允许使用指向空值的引用(意味着引用的执行效率比指针要高,因为在引用使用前不需测试它的合法性)。
2、指针可以重新赋值,但引用却得从一而终,总是指向在初始化时指向的对象。
3、引用是一个变量的别名,不占存储空间。指针是个变量,占用存储空间。
不管这位老师问的问题正确与否,还是谢谢他。