什么是指针?
指针是存放地址的变量。可以存放变量的地址,也可以存放各种类型的数据的地址。
存放的是什么地址呢,是内存的地址,内存是一个线性字节数组,每个字节由8个二进制组成,每个字节都有唯一编号,一个4G的内存地址范围就有十六进制: 0x00000000~0xffffffff。程序载入内存都有自己的唯一编号,这个编号就是数据的地址。指针的大小由地址的字长决定,不是由地址所存的数据大小决定。地址字长与存储单元编号有关,与CPU和操作系统的位数有关。位数可以说是CPU一次能够并行处理的数据宽度。
用来保存指针的变量,又叫做指针变量,指针变量p保存了变量mun的地址,就是说p指向了变量num所在的内存地址。
指针保存地址怎么写?
int* y = &x,用&操作符/运算符获取变量的地址。
特殊情况下不需要使用&取地址:
- 数组名的值就是这个数组的第一个元素的地址。
- 函数名的值就是这个函数的地址
- 字符串字面值作为右值时,字符串名的值就是在内存中的地址
怎么读取指针变量中的数据
对一个指针解地址,就可以取到内存中的数据,语法是在指针前面加一个*号。
int age = 19; int*p_age = &age; //定义指针 printf(*p_age); //通过指针读取指向的内存数据
参考引用:https://mp.weixin.qq.com/s/f3CIK8Zr7TRaA2r8xahr7g