c语言取地址和间接引用

#include <stdio.h>
int main()
{
int a=10;
int b;
b=a;
//取地址
//地址符+变量名
&a;
printf("%p\n",&a);
//地址的范围0x000000000001-0xffffffffffff 由12个16进制的数组成
//地址由四个字节组成显示的是首字节的地址
//每次打印地址都是变化的,是因为地址用过之后被回收了,下次使用会再次分配。
//内存地址是由系统分配的,内存大地址长度大,内存小地址长度小。
//printf("%p\n",a);把a的以十六进制输出,当然也可以10进制,数值未变。
//printf("%p\n",&a);把地址以十六进制输出,当然也可以10进制,数值未变。
//地址不额外占用内存空间。举例4g内存,地址不在这个4g内存之中。
//***********//
//间接引用
//取出地址中的值,*号表示在单目运算中表示取值运算符,在双目运算符中表示乘
//例如a * b
//注意单目运算时结合方向由右向左的
printf ("%d\n", * &a);
//结果等于
printf ("%d\n",a);
//根据输出结果可以看出 * &a=a,为什么要通过&得到a的地址,之后再通过 * 取a的值打印出来呢,
//是因为我们正常不知道a这个变量,所以无法对其操作,需要根据使用malloc函数根
//据我们变量的类型和数据的大小动态申请空间,我们将得到这块空间的首地址
//然后通过这个地址,间接对这段空间赋值
return 0;

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值