指针和引用,类型转换

来源:互联网 发布:xtr模拟器软件下载 编辑:程序博客网 时间:2024/06/14 01:35

1.引用是一个变量的别名

引用的必须是一个对象,而且类型要保持一致


引用 引用也是可行的,只是别名,对象只有一个


看引用的反汇编



在进行引用的过程,寄存器eax中的值是[a],再将eax的值传给了[b],对引用执行的操作是在原数据的地址上进行的,这也说明了引用就是对原数据操作   

2.指针的使用


int * const p,const int*  p的区别

int* const p,首先是一个指向int的指针,再看const指向是const的


const int* p,p是指向常量 int的指针,不能通过指针修改指向的数值,但是能给指针一个新的地址


指针和数组


这段代码就是说明a是int *const ,不能改指针,但是能改指针指向的值,

p是const int* ,指向的是常量,不能更改指向的值。

指向指针的引用


四种强制转换类型

这四种转换我用的也不多,就不附代码了,可以去http://blog.csdn.net/swartz2015/article/details/69651482自己看下.

static_cast< T>  (P)  一般的类型转换,也是常用的转换

dynamic_cast<T> (P)  动态类型转换,一般用于多态,class 指针或者引用转换。转换失败时会返回NULL.

reinteropert_cast<T> (&P)  按位进行转换,可能会丢失数据,多用于指针类型转换

const_cast<T>   (P)   一般用于去CONST或者增加const特性,当用到这个函数转换的时候极有可能是代码出现了问题。


原创粉丝点击