You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言指针代码运行结果解析:为何输出1和12?

C语言代码功能分析与疑问解答

先看完整代码:

int main()
{
    int var1,var2, *ptr;
    ptr=&var1;
    var2=12;
    *ptr=var2;
    var1=var1/ *ptr;
    printf("%d %d", var1,var2);
}

你的理解完全正确,下面逐行拆解关键步骤:

  • int var1,var2, *ptr;:声明两个整型变量var1、var2,以及一个指向整型的指针ptr。
  • ptr=&var1;:将var1的内存地址赋值给ptr,此时ptr的指向目标是var1。
  • var2=12;:给var2赋值为12。
  • *ptr=var2;:这里的*是指针解引用运算符,作用是访问指针指向的内存空间中的值。因为ptr指向var1,所以这行等价于var1=var2,执行后var1的值变为12。
  • var1=var1/ *ptr;:此时var1的值是12,*ptr依然指向var1,所以*ptr的值也是12。计算12/12得到1,再赋值给var1,此时var1的值更新为1。
  • printf("%d %d", var1,var2);:输出var1(1)和var2(12),也就是你看到的运行结果。

内容的提问来源于stack exchange,提问作者Leandro Zárate

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 08:15:28