BX14 2023-03-05 18:10 采纳率: 95.7%
浏览 13
已结题

1和2的p1和p2都是指向‘a’的地址(关键词-数组)

为什么这两种情况不一样
1.

img

2.

img



1和2的p1和p2都是指向‘a’的地址,为什么第一种情况两个指针是一样的,而第二种情况就不一样了呢?
虽然我能感觉到第二种情况多了一个‘d’ ,通过指针来找这个数组的时候两个数组是不一样的,所以输出的地址不一样,但是不明白其中的原理。

  • 写回答

1条回答 默认 最新

  • 元气少女缘结神 2023-03-05 18:18
    关注

    因为第一张可以理解成:
    char tmp[]="abc";
    char *p1=tmp;
    char *p2=tmp;
    所以当然输出就是一样的,因为这两个指针都是tmp的别名。
    而你的第二张等效于:
    char tmp1[]="abcd";
    char tmp2[]="abc";
    char *p1=tmp1;
    char *p2=tmp2;
    它们是不一样的数组/不一样的两块内存,当然指向它们的地址不一样。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 3月14日
  • 已采纳回答 3月6日
  • 创建了问题 3月5日

悬赏问题

  • ¥20 数学建模数学建模需要
  • ¥15 关于#lua#的问题,请各位专家解答!
  • ¥15 什么设备可以研究OFDM的60GHz毫米波信道模型
  • ¥15 不知道是该怎么引用多个函数片段
  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline