32位操作系统下,不管什么数据类型,指针都是占4个字节的空间大小;
64位操作系统,占8个字节的空间大小。
指针
指针的作用:可以通过指针间接访问内存
用指针来保存一个地址
指针就是地址
#include<iostream> using namespace std; int main() { int a=10; // int *p;// 中间需要空一格 int * p; //为什么中间空一格才可以出来 p=&a; //&a:获取a的地址 //相当于 int * p =&a; cout<<&a<<endl; //0x68fed8 cout<<p<<endl; //0x68fed8 //可以通过解引用的方式来找到指针指向的内存 // 指针前加*代表解引用,代表p指向的内存中的数据 *p=1000; cout<<*p<<endl; //1000 //通过p可以间接找到a这块内存,通过*p进行修改 cout<<a<<endl; //1000 return 0; }
空指针
空指针(null point):指针变量指向内存中编号位0的空间。
作用:初始化指针变量。
注意:空指针指向的内存不可以访问。
0-255之间的内存编号是系统占用的,所以不可以访问。
#include<iostream> using namespace std; int main() { int * p=NULL; // *p=1000; //会报错 return 0; }
野指针
野指针:指针变量指向非法的内存空间。
#include<iostream> using namespace std; int main() { //指针变量p指向了内存地址编号位0x1100的内存空间(非法空间) int * p=(int *)0x1100; cout<<*p<<endl;//可以编译,但是运行会报错 return 0; }
注意:空指针和野指针都不是我们自己申请的空间,因此不要随意访问。