指针

指针(补充)

首先明白:
一个字节=一个内存单元=一个内存地址=一个地址单元=一个存储单元
都是一个意思。

定义一个指针之后,如果不进行初始化,指针是不能够使用的,因为此时指针的指向是不确定的(野指针),操作指向不确定的指针很可能会引发问题。所以尽可能等定义了对象之后,再定义指向它的指针,确保指针初始化。
用函数free()释放指针是向操作系统声明操作系统可以重新分配指针指向的这块内存,但此次指针的指向并没有改变,所以释放指针之后再进行读写操作非常危险。指针被释放多次也会引起程序崩溃。

一般,
地址+1,表示跳过一个字节的内存空间。

  printf("addr+1=%p\n",0x1000000d+1);

编译输出:

addr+1=0x1000000e

指针变量+1表示跳过该指针变量对应基类型所占字节数大小的空间。

  int a=0;
  //int *p = &a;  //直接用&a代替指针变量p
  printf("a_addr=%p\n",&a);
  printf("&a+1=%p\n",&a+1);
  printf("&a+2=%p\n",&a+2);

编译输出:

a_addr=0x7ffd5a11020c
&a+1=0x7ffd5a110210
&a+2=0x7ffd5a110214

理解指针地址(程序)https://blog.csdn.net/ssc_zcys/article/details/105875616

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值