1.普通数据类型的定义很简单,比如int iVar = 100;而指针类型也只是加了个说明符*,比如int *pInt;不过,指针类型在使用之前必须初始化,否则,会报错。
#include <iostream>
int main()
{
int iVar = 100;
int *pInt;
// cout << *pInt; // 报错!
pInt = &iVar;
// 使pInt指向iVar,即pInt是iVar变量的内存地址值
cout << *pInt; // 用*解除指针引用
return 0;
}
2.数据对象的引用就是数据对象的别名,也就是说如果定义了一个类Person并实例化一个对象:Person per,你可以直接通过实例化对象来调用相应的类成员函数(如果类中有个成员函数speak(),那么per.speak()是正确的)。当然,你也可以声明对象per的引用:Person &rPer = per(注意引用声明的同时必须初始化)。这样,rPer.speak()将产生和per.speak()相同的效果。
对象的指针和引用的区别是:
(1)使用方法不同:Peron *pPer = per; Person &rPer = per;
调用speak():pPer->speak(), rPer.speak();
(2)使用场合不同:引用声明同时必须初始化,而且之后不能将引用赋新值,即rPer = per2(如果声明了per2这个Person对象)就是错误的。而指针却可以重新赋值,指向另外的对象。而且指针使用时需要注意其是否为空,再进行操作。
。。。断电了,今天先答这些吧。