c指针

指针  相当于 栈一样, 你每设置一个变量,它都会被存在内存的某个地址里,指针就是用来存放地址的

你设置了指针你就可以把数据存入或读出   指针保存的地址 对应内存里面的数据,

写入内存地址:pc = &a;

读出地址内存的数据: *pc

    int a;
    char *pc;
    char *sp;

    printf("&a = %p\n",&a);
    printf("&pc=%p\n",&pc);
    printf("&sp=%p\n",&sp);

像栈一样,高地址在上面,读写也是从下往上。

    a = 0x12345678;
    pc = (char *)&a;
    sp = &a;

    printf("a =0x%x\n",a);
    printf("sp=%p\n\t",sp);
    printf("pc=%p\n\n",pc); 

 

    printf("*sp=0x%x\n",*sp);
    printf("pc=%p\t",pc); printf("*pc=0x%x\n",*pc);pc=pc+1;
    printf("pc=%p\t",pc); printf("*pc=0x%x\n",*pc);pc=pc+1;
    printf("pc=%p\t",pc); printf("*pc=0x%x\n",*pc);pc=pc+1;
    printf("pc=%p\t",pc); printf("*pc=0x%x\n",*pc);

把a的地址存入pc,sp指针,pc是一一个字节为单位存放,sp是4字节,由下面可知

 

可见pc,和sp的地址都一样,但都sp的地址却一次就把数据全部读出来了,而pc却用了4次

可见不同的指针存数据的格式是不一样的,是方式一样,都是从首地址开始读,向上读单位个字节,

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值