KB.VJ 2022-04-20 10:01 采纳率: 66.7%
浏览 26
已结题

初学者关于指针的疑惑

请教:

img


为什么地址不同输出的值是一样的??
还有使用&取的地址为什么和int指向数组的指针的地址不一样啊?

  • 写回答

3条回答 默认 最新

  • 春休夏末 2022-04-20 10:26
    关注

    int p = arr[0];
    &p

    int *q = arr;
    这里&p和 指针q打印出来的地址不一致的原因是
    因为int p = arr[0]; 这一步只是一个赋值操作,这里定义了一个新的变量p 然后将arr[0]这个元素的值赋值给了p, 这个时候p和arr[0]只是存储的值是一样的,但是地址没有任何关联,因为p和arr[0]是两个不同的int类型变量 p的地址和arr[0]的地址也是不同的
    int *q = arr;
    arr指向数组的起始地址,我们知道arr[0]就是数组的第一个元素,所以数组的起始地址就是第一个元素的内存地址即 arr等价于&arr[0], q=arr 等价于 q = &arr[0]
    再回到上面
    int p = arr[0];

    int *q = &arr[0]
    因为p和arr[0]是不同的变量 所以&p和q打印出来的地址必然不会一样

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月28日
  • 已采纳回答 4月20日
  • 创建了问题 4月20日

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line