Eclipse IDE for c++(指针)

来源:互联网 发布:格灵深瞳 知乎 衰败 编辑:程序博客网 时间:2024/05/24 16:16

  1)指针用于指向另外一个对象,它保存的是对象的内存地址,主要用于间接的通过内存地址访问对象的内容。

   2)理解指针声明语句时从右向左阅读。

         string *pstring 从右向左定义了一个指向string类型对象的指针变量。

   3)指针可能的取值:特定的对象的地址/指向某一个对象后面的另一对象/0值,未初始化的指针是无效的。

 

     使用未初始化的指针,Build时会报错。对于编译器来说,指针未初始化,就意味着指针中存放的是不确定的内存地址,操作的也是该内存地址对应的对象。

   4)C++ 提供了一种特殊的指针类型 void*,它可以保存任何类型对象的地址。

   Eclipse for C++中如果一个指针定义了,并赋值后没有使用,Build之后会提示指针已经赋值,但没有使用。觉得这个比较实用。

   void* 指针只支持几种有限的操作:与另一个指针进行比较;向函数传递void* 指针或从函数返回 void* 指针;给另一个 void* 指针赋值。不允许使用void* 指针操纵它所指向的对象。

  提示不允许对Void*指针指向的对象进行操作(自增),比较人性化喔。

5)虽然使用引用(reference)和指针都可间接访问另一个值,但它们之间有两个重要区别。第一个区别在于引用总是指向某个对象:定义引用时没有初始化是错误的。第二个重要区别则是赋值行为的差异:给引用赋值修改的是该引用所关联的对象的值,而并不是使引用与另一个对象关联。引用一经初始化,就始终指向同一个特定对象(这就是为什么引用必须在定义时初始化的原因)。