1.声明普通变量和声明指针的区别
在使用的开始需要明白的一点,当函数调用变量时,会先拷贝一份:
class A
{
public :
String name;
}
void F(A a)
{
cout<<a.name
}
A a; //声明一个A的变量
F(a); //调用时会将a拷贝一份,此时a就是那份拷贝
函数调用一个类A的变量,此时A进行一份A的拷贝,当sizeof(a)变得很大时,拷贝的时间就比较长。
并且因为是拷贝,所以f(a)中的改变并不能反映到声明的a变量。
void F(A *a)
{
cout<<a->name;
}
这里用指针,当F(&a)时传入指针的地址,此时指针地址为一个整数,此时是使用箭头。
void F(A& a)
{
cout<<a.name;
}
当为引用时,引用的是指针的地址,指针的地址在32位的计算机上时大小都是32位,并且此时引用兼顾了普通变量的使用便捷性。
需要说明的是,引用不可为空值。