|
|
C++中的指针,可以说是让人爱恨交加。因为指针,使得C++强大而灵活;同样是因为指针,使得C++相比其他语言,对新手来说简直是噩梦。相信我的这番话每一个走过来的C++程序员都有同感。
指针是什么东西呢?
int nNum = 10;
int* p_int = & nNum;
double d = 8.7765;
double* p_double = &d;
p_int, p_double 就是我们所说的指针,那么她到底是什么东西呢?
关键就是指针在声明的时候 int* 和 double* 把人胡悠住了。其实不管是什么类型的指针其实本质就是一个长度为4个字节的长整型变量( long int )。不管这个指针是所谓的char型r,int型还是double,float或是自定义的类型等等,本质都是一个长整数,比如 0012F574 。如果你对我说的有疑虑,你可以用sizeof(指针)试一试,不管什么类型的指针,都是4个字节。
其实,我觉得如果C++这样规定指针的定义话,那就好明白多了, 不管什么类型,因为指针本质就是一个长整形数值,所以应该用:
int nNum = 10;
long p_int = & nNum;
double d = 8.7765;
long p_double = &d;
所以,指针的本质就是:指针其实就是一个长整型变量(long int) ,无论哪种数据类型,她们的指针都一样,都是一个长度为4个字节的长整型变量,里面存放的是一个内存地址。
---------------
本人对程序理解还尚浅,如有错误的地方还请各位大侠指教!
|
|