$ 9 : 指针

指针的定义

内存区域中的每字节都对应一个编号,这个编号就是“地址”.

如果在程序中定义了一个变量,那么在对程序进行编译时,系统就会给这个变量分配内存单元.

按变量地址存取变量值的方式称为“直接访问”,如printf("%d",i);、 scanf("%d",&i);等,另

一种存取变量值的方式称为“间接访问”,即将变量i的地址存放到另一个变量中.

在C语言中,指针变量是一种特殊的变量,它用来存放变量地址。

指针变量的定义格式如下:基类型*指针变量名;

例如,
int *i_pointer;

取地址操作符与取值操作符,指针本质

取地址操作符为&,也称引用,通过该操作符我们可以获取一个变量的地址值;

取值操作符为*,也称解引用,通过该操作符我们可以得到一个地址对应的数据

如下例所示,我们通过&获取整型变量i的地址值,然后对整型指针变量p进行初始化, p中存储的是整型变量i的地址值,所以通过*p(printf函数中的*p)就可以获取整型变量i的值.

p中存储的是一个绝对地址值,那为什么取值时会获取4字节大小的空间呢?这是因为p为整型变量指针,每个int型数据占用4字节大小的空间,所以p在解引用时会访问4字节大小的空间,同时以整型值对内存进行解析.
取地址与取值(引用与解引用)

#include <stdio.h>
//&符号是取地址,指针变量的初始化一定是某个变量取地址
int main()
{
int i = 5;int*p=8i;
printf("i=%d\n", i);//直接访问
printf("*p=%d\n",*p);//间接访问
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值