对指针的理解

在C语言中可以认为一切皆地址。

当声明变量时,程序都干了什么?

int a=10;

1 根据函数类型申请一块内存,并将内存的名字命名为a

2 将10以二进制补码形式写入内存//赋值

 我们将这种通过变量名引用变量,由系统自动完成变量名和其存储地址之间的转换的方式,称为变量的"直接引用"。

利用指针我们可以做什么呢?

内存是线性,因为不同类型的变量占用不同大小的内存,所以我们必须要对内存进行编号。我们将内存的编号叫做内存的地址,当内存中装的是另一个变量的地址时,我们称之为指针。即:指针是装地址用的。

int a=10;
int *p=&a;
printf("%d",*p);

第二句:将变量a的地址写入指针变量p所开辟的空间内

第三句:打印出空间p的内容

我们将这种例如通过变量b来间接引用变量a,间接读写变量a的值的方式叫做"间接引用"。 

注意:

第一个*号:声明变量p为一个指针类型变量

第二个*号:解引用运算符,解释p所存储的地址,解释的结果是在内存中找到p中的地址(如果变量名前没有加取地址运算符“&”则变量代表的就是变量所代表的存储空间里面的内容)所以,此时*p代表的是指针p里面的地址里面的内容。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值