努力追求可能 2021-11-04 19:38 采纳率: 66.7%
浏览 38
已结题

为什么j不是2 是1??

int j=1;
j=j++;
printf("%d\n",j);
这里不是语句2 最后不是j++吗?

img

  • 写回答

2条回答 默认 最新

  • ~时光蹉跎~ 2021-11-04 20:11
    关注

    j的值为2
    j++ 作用 先使用 j的值 再给j + 1
    ++ j 先给j + 1 再使用j的值

    int i = j ++ ;
    int i = ++ j;
    这两个语句执行后 i的值是不一样的

    #include<stdio.h>
    int main() {
        int j = 1, i;
        i = j++;
        printf("%d\n", i);
    }
    
    结果: 1
    
    #include<stdio.h>
    int main() {
        int j = 1, i;
        i = ++j;
        printf("%d\n", i);
    }
    
    结果:2
    

    不知道楼主为啥结果为1

    img

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

报告相同问题?

问题事件

  • 系统已结题 11月12日
  • 已采纳回答 11月4日
  • 修改了问题 11月4日
  • 创建了问题 11月4日

悬赏问题

  • ¥15 Groimp使用疑问
  • ¥15 c++ 主窗口里面的菜单如何脱离主窗口
  • ¥15 MDK–ARM里一直找不到调试器
  • ¥15 oracle中sql查询问题
  • ¥15 vue使用gojs3.0版本,在nodeDataArray中的iconSrc使用gif本地路径,展示出来后动画是静态的,不是动态的
  • ¥100 代写个MATLAB代码,有偿
  • ¥15 ansys electronics 2021 R1安装报错,错误代码2,如图
  • ¥15 Dev-c++打字不出现中文,但出现日文
  • ¥30 搭建面包板由NE555N和SN74LS90N组成的计时电路时出了问题
  • ¥15 无源定位系统的时差估计误差标准差