C/C++中指针的深入理解_C 语言_脚本之家 (jb51.net)
指针与内存地址与解指针
- int *p=&a; // '&'的作用就是把a变量在内存中的地址给提取出来
- 指向内存地址,0x00000的地址
- int *,float *,指针都是4个字节,不管是什么数据类型
int a = 12;
int * p = &a; //p可定是内存地址了
std::cout << *p << std::endl; //返回12
*p = 123; //写入
std::cout << a << std::endl; //返回123
std::cout << &a << std::endl; //返回地址
std::cout << p << std::endl; //返回地址
空指针
- 空指针:指针变是指面内存中编号为0的空间
- 用途:初始化指针变量
- 空指针内存是不可以访问的
int * p = NULL;
*p = 100; //会报错,0~255是系统占用的
野指针
- 非法的内存空间
int * p = (int *) 0x100 //读取访问异常
const修饰指针
- const 修饰指针 -常量指针
- const int * p = &a; *p 不可以改变 p可以改变
- const 修饰常量 - 指针常量
- int * const p = &a; *p 可以改变 p不可以改变
- const 修饰指针 修饰常量
- const int * const p = &a;