1、指针的定义
2、取地址操作符与取值操作符,指针本质
取地址操作符为&,也称引用,通过该操作符我们可以获取一个变量的地址值;取值操作符为*,也称解引用,
通过该操作符我们可以得到一个地址对应的数据。如下例所示,我们通过&i获取整型变量 i的地址值,
然后对整型指针变量 p 进行初始化, 中存储的是整型变量i的地址值,所以通过*p(printf 函数中的*p)
就可以获取整型变量i的值。p中存储的是一个绝对地址值,那为什么取值时会获取4字节大小的空间呢?
这是因为p为整型变量指针,每个int 型数据占用4 字节大小的空间,所以 p 在解引用时会访问4字节大小的空间,
同时以整型值对内存进行解析
#include <stdio.h>
int main() {
int i = 5;
//定义了一个指针变量 i_pointer就是指针变量名
//指针变量的初始化是某个变量取地址来赋值,不能随机写个数
int *i_pointer = &i;
printf("i=%d\n",i);//直接访问
printf("*i_pointer=%d\n",*i_pointer);//间接访问
return 0;
}
说某个变量的地址时,讲的都是它的起始地址
指针的使用场景通常只有两个,即传递与偏移
1、指针的传递
2、指针的偏移
使用场景,也就是对指针进行加和减
指针与一维数组
d[1]=‘E’;等价于*(d+1)=‘E’;
输出数据为 HELlo
指针与动态内存申请(重要)
栈空间与堆空间的差异(了解)
|
|