指针是指向另外一个类型的复合类型,另外一种类型的复合类型,与引用类似,指针也实现了对其他对象的间接访问。然而指针与引用又有很多不同点。指针本身就是一个对象,允许对指针赋值和拷贝。和其他内置类型一样,在指针的生命周期内可以指向几个不同的对象。其次,指针无需在定义时赋值。合体它内置类型一样,在块的作用域内定义的指针如果没有被初始 化,也拥有一个不确定的值。
定义指针类型的方法将声明符写成d的形式,其中d是变量名,如果在同一条语句中定义了几条指针,每个变量前面都必须有符号:
#获取对象的地址
指针存放某个对象的地址,需要用到取地址符(操作符&):
第二条语句把P定义为一个指向int型的指针,随后初始化p令其指向名为ival的int对象。因为引用不是对象,没有实际地址,所以不能定义指向引用的指针。
因为在声明语句中指针的类型实际上被用于指定它所指向它所指向对象的类型,所以两者必须匹配。如果指针指向了一个其他类型的对象,对该对象的操作将发生错误。
#指针值
指针的值(即地址)用属下列4种状态之一:
1.指向一个对象。
2.指向紧邻对象所占空间的下一个位置。
3.空指针,意味着没有任何的指向对象。
4.无效指针,上述情况之外的其他值。
#利用指针访问对象
如果指针指向了一个对象,则允许用解引用符(操作符*)来访问该对象:
对指针解引用直接赋值也可以得到相应的值。
#相关符号的多重含义判断
#空指针
空指针不指向任何对象,在试图使用一个指针之前可以首先检查是否为空。例如: