weixin_43113933 2020-10-29 00:28 采纳率: 58.3%
浏览 62
已采纳

c语言神之迷惑题,求解

执行下列语句后的结果为()。
int x=3,y;
int *px=&x;
y=*px++;
答案:x=3,y=3,实在没想明白,网上说的也是各种解释,看晕了,
百度的没看明白,感觉都没说到点

#include
#include
#include
using namespace std;

int main()
{
int x=3,y;
int *px=&x;
printf("px=%p,x=%d\n",px,*px);
y=*px++;
printf("px=%p,x=%d,y=%d",px,*px,y);
return 0;
}
我自己编译运行后结果
px=000000000065FE10,x=3

px=000000000065FE14,x=3,y=3

px的地址是变化了的,哪*px为什么有没变呢,想不明白,指向都变了

  • 写回答

2条回答 默认 最新

  • 小学狗喵喵叫 2020-10-29 09:04
    关注

    因为y=*px++;是先赋值后地址加1的

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

报告相同问题?

问题事件

  • 已采纳回答 9月25日

悬赏问题

  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 MATLAB中streamslice问题
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序