先看一段程序:
从执行结果可以看出,指针引用都可以指向变量。
指针是自由的,而引用只能初始化一次,之后如果再赋值,就直接修改指向的变量,因此,引用是变量的别名~
我们知道指针在32位机器上是4字节的一种数据类型。而引用又是占用多少内存呢?
我把程序稍作修改,比较来看看:
第一种情况和第二种情况的区别在于。。。定义指针变量和定义引用变量的先后顺序,因为在函数中,局部变量是在堆栈中存储的,因此分配内存是按顺序的。我们观察一下其中的区别:
第一种情况:
第二种情况:
见证奇迹的时刻:
引用变量确实占用了4字节的内存。想必他和指针的作用是相同的, 只是为了更清晰的表示指向的变量才设置的。
这样看来,引用是否等于一个:
int * const rptr=var;
呢!