5、C语言指针

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

指针与动态内存申请(重要)

在这里插入图片描述
在这里插入图片描述

栈空间与堆空间的差异(了解)

| 在这里插入图片描述
| 在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值