指针的作用
1、有了指针,就有了自由访问内存空间的手段。(在写底层驱动程序时尤为有用)
不需要通过变量,就能对内存直接进行操作,程序能访问的内存区域就不仅限于变量所占据的数据区域。
比如:在C++中,用指针p指向a的地址,然后对p进行加减操作,p就能指向a后面或前面的内存区域,通过p也就能访问这些内存区域。
2、c和c++中很多库函数的参数就是指针
指针的互相赋值
不同类型的指针,如果不经过强制类型转换,不能直接相互赋值。
int * pn, char * pc, char c = 0x65;
pn = pc; //类型不匹配,编译出错
pn = &c; //类型不匹配,编译出错(c的地址是一个指针,其类型位char *,因为c的类型是char型的)
pn = (int * ) & c; //强制类型转化
int n = * pn; //n值不确定。c只有一个字节,*pn是pn指向地址开始的四个字节的内容
* pn = 0x12345678; //编译能过但运行可能出错。把c及其后面3个存储空间的内容重写,但是可能无法访问