指针:也可以叫指针变量,与其他类型的变量相同,同样保存一个值,只不过保存的值是一片地址(16进制数)
注:在32位机上,指针统一占4个字节,64位机则占用8个字节,因为指针就是用来保存
地址,所以地址多大,指针就有多大。
一、使用指针需要了解并注意:
因为指针记录的是地址,所以理论上来说,指针就记录了一个16进制数,所以以下操作是合理:
int *p = 0xFFFF10;
但是编译器会报警告,警告的原因是p需要接受一个int *类型的数据,而0xFFFF10是一个立即数,不知道是什么类型的,于是为了骗编译器,所以可以修改代码为:
int *p = (int *)0xFFFF10; //强制数据类型转换
编译和运行以上代码会发现,程序不会有任何错误,这是因为系统允许指针记录任意的地址值,但是对于该指针不要进行读写操作,因为指针指向的内存,当前进程是否有权限操作是不确定的,如果没有权限操作程序会报段错误
二、指针的作用:
1.可以间接访问,提高效率
2.函数传参时直接传地址,更方便,地址传递最大的好处是节约内存开销
3.可以使用堆空间,获取更大的内存操作空间
1:直接访问与间接访问
直接访问:直接访问一个变量名,是访问的内存空间中的值通过变量名做赋值操作,是可以直接修改内