0.1指针内存
32位操作系统指针占4个字节大小(不管什么数据类型)
0.2空指针和野指针
空指针:
指针变量指向内存中编号为0的空间 int*p=NULL;
用途:初始化指针变量
注意:空指针指向的内存是不可访问的
内存编号为0-255为系统占用内存,不允许用户访问
野指针:
int*p=(int*)0x1100指针变量指向内存空间为0x1100的空间;
访问野指针报错,指针变量指向非法空间
空指针和野指针都不是我们申请的空间所以不要随意访问。
0.3const修饰指针
1.const修饰指针 –常量指针
const int*p=&a;指针指向地址可以更改,指针指向的值不能更改。
2.const修饰常量 –指针常量
int* const p=&a;指针指向地址不可更改,指针指向的值可以更改
3.const 即修饰指针,又修饰常量
const int* const p=&a; 指针指向地址和指向的值都不能改变
0.4指针和数组
Int arr[10];
Int *p=arr;
数组遍历:
cout<<*p<<endl;
p++;
0.5指针和函数
值传递:修改形参
传递的数据值属于局部变量在栈区,函数调用完数值销毁。
地址传递:修改实参
传递的main函数局部变量地址,普通函数体内通过地址能改变main函数中局部变量的值。