DAY13

一、指针的基本概念

指针是一个变量,它存储的是另一个变量的内存地址。通过指针,我们可以间接访问和修改另一个变量的值。指针的定义形式为:类型名 *指针变量名;。例如:int *p;定义了一个指向整数类型的指针变量p

指针变量的值可以通过取地址运算符&来获取另一个变量的地址,例如:p = &a;将变量a的地址赋给指针变量p。同时,我们也可以通过指针变量来访问和修改其所指向变量的值,例如:*p = 10;将指针变量p所指向的变量的值修改为10。

需要注意的是,指针变量本身也有自己的地址,我们可以通过&p来获取指针变量p的地址。

*p在底层做的事

1、通过指针变量中的值到内存空间中定位。

2、从定位处开始向后偏移sizeof(基类型)。

3、将偏移好的那部分内容空间当作是一个基类型变量来看。

9d1935cd16464eea85c62cd6e4916b51.jpg

 858fe1a848f749e4a63c7b7bfe93dd8d.jpg

二、指针与数组的关系

在C语言中,数组名实际上是一个指针,它指向数组的首元素的地址。例如,对于数组int a[10];,我们可以通过a来访问数组的首元素,也可以通过a + i来访问数组的第i个元素。

同时,我们也可以定义一个指针变量来指向数组,例如:int *p = a;。这样,我们就可以通过指针变量p来访问数组的元素     a[i]等价于 *(a+i)

当*和&运算符在一块时, 可以抵消。

需要注意的是,当指针变量指向数组时,我们可以通过指针变量来修改数组元素的值,但不能修改指针变量所指向的数组的地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值