学好编程! 2022-01-14 15:44 采纳率: 96.8%
浏览 27
已结题

k++后第二次k不是6吗 还有i++啥意思

以下程序的输出结果是
m=4,k=4,i=5,k=5

#include <stdio.h>
int k=0;
void fun(int m)
{
m+=k;k+=m;
printf("m=%d,k= %d ",m,k++);
}
void main()
{
int i=4;
fun(i++);
printf("i=%d,k=%dn",i,k);
}

  • 写回答

3条回答 默认 最新

  • Code_流苏 C/C++领域优质创作者 2022-01-14 16:01
    关注

    自己写了一下解析:
    int k=0; 定义了一个全局变量k 赋值为0
    接着从void main()函数看起,
    首先定义了一个整数类型变量i 并将其赋值为4 即:int i=4;
    然后调用fun()函数,传参i++,即:fun(i++) 然后说明一下i++ i++其实就是自增运算,每次相关语句执行结束后 自增1
    调用了fun()函数,我们视角走向fun()函数部分
    void fun(int m) i++传给了m 此时m=4
    m+=k; 即m=m+k; m=4 k=0 所以 m=m+k=4
    k+=m; 即k=k+m; m=4 k=0 所以k=k+m=4
    然后printf输出 m=4,k=4 函数执行结束,k自增1 k=5 紧接着回到主函数调用结束 即fun(i++)语句结束,此时i自增1,i =5
    所以在主函数输出i=5,k=5
    希望对题主有所帮助,望采纳!!

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

报告相同问题?

问题事件

  • 系统已结题 1月22日
  • 已采纳回答 1月14日
  • 创建了问题 1月14日

悬赏问题

  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 Hadoop集群部署启动Hadoop时碰到问题
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 QTableWidget重绘程序崩溃
  • ¥15 如何解决智能小车直道抖动
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难