为什么在打印语句之前调用函数?

2024-03-15

 #include<stdio.h>
 int func(int x){
   printf("Print\n");
   return x;
 }
 void main(){
   printf("The value of x is %d",func(50)); /* Print is printed first then the value of x */
   return 0;
 }

该程序的输出是:

Print
The value of x is 50

所以我的问题是为什么函数打印Print之后它正在打印The value of x is 50. Why The value of x is之前没有打印,因为函数是在语句之​​后调用的。


让我们分析一下你的程序的流程。

  1. main()正在被呼叫。

  2. printf()正在被呼叫。

    2.1 在评估论点时printf(), the func(50)遇到函数调用

    2.2 func(50)函数开始执行。它打印Print并返回x [50]

  3. 最后,printf() in main()好像printf("The value of x is %d",50);[50是函数调用的返回值func(50)]

  4. 发生第二次打印,打印The value of x is 50

所以,你的输出屏幕看起来像

Print
The value of x is 50

注意:正如评论中已经提到的,使用int main()代替void main()。否则,return 0毫无意义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在打印语句之前调用函数? 的相关文章

随机推荐

  • 命名空间动态加载的 javascript 文件的内容

    是否可以为动态插入的 JavaScript 文件命名空间 我知道我可以通过创建一个动态包含 JavaScript 文件script标记并将其插入到 DOM 中 但是这个包含的文件可以命名空间吗 所以 如果该文件有一个名为bar 我想通过命名
  • 有没有办法暂停所有 Threading.Timer 计时器?

    我是 C 新手 正在开发一个需要多个计时器的程序 我想知道当程序运行 CPU 密集型代码时是否有办法同时暂停该程序中的所有计时器 目前 当前启用的计时器尝试赶上密集操作期间引发的所有计时器事件 我认为您可以创建这些计时器的列表 当您激活它们
  • 在 Java 中运行 CUDA 代码的最简单方法是什么?

    我有一些用 C 语言编写的 CUDA 代码 它似乎工作正常 它是普通的旧 C 而不是 C 我正在运行一个 Hadoop 集群 并且想要整合我的代码 因此理想情况下我希望在 Java 中运行它 长话短说 系统太复杂 目前 C 程序解析日志文件
  • 在android中以不同模式打开手电筒

    下面的代码可以在不支持手电筒的 Android 设备 例如摩托罗拉剃须刀 上运行吗 请哪位好心人测试一下是否有这样的手机并请告诉我 提前致谢 if isFlashOn if camera null params null return Li
  • ClientRect 神秘地比 WindowRect 小?

    我在 Visual Studio 中启动了一个新的 Windows 桌面 C 项目 窗口创建如下所示 HWND hWnd CreateWindowW szWindowClass szTitle WS OVERLAPPEDWINDOW CW
  • 如何将图表嵌入到幻灯片或苹果的主题演讲中?

    我正在学习如何用plotly 生成图表 我是生物化学研究生 我想将这些图表用于演示文稿 例如幻灯片 主题演讲 我想知道是否有人可以给我一个总体策略或教程链接 谢谢你 Plotly 有一个 MS Office 应用程序 允许嵌入 Window
  • Java中重新定义静态方法意味着什么?

    我一直在阅读 SCJP 学习指南中有关静力学的部分 其中提到了以下内容 静态方法不能被重写 但它们可以被重新定义 重新定义到底意味着什么 是否存在父级和子级中都存在具有相同签名的静态方法的情况 但它们是通过类名单独引用的 例如 class
  • 如何在 mongodb 的正则表达式 $match 中使用聚合中的字段?

    我的用例的一个非常简化的版本是查找以作者姓名开头的所有帖子 如下所示 gt db users find id ObjectId 5c4185be19da7e815cb18f59 name User1 id ObjectId 5c4185be
  • Javascript防止可拖动div位于父div之外

    我有可拖动的div 我希望使用 javascript 将这个可拖动的 div 限制在父级中 我知道如何使用 jquery UI 可拖动插件来防止可拖动 div 但我不确定如何使用本机 javascript 限制可拖动 请在下面找到我的代码
  • 在批处理文件中使用方框图 Unicode 字符

    我正在制作一个使用这些字符的批处理文件 它不起作用 它只是自行终止 我见过人们使用这样的字符 它不是字符 但它变成了字符 有人可以给我这些字符的列表 显示上面字母的类型以及它变成什么 如果要编写使用这些字符的控制台批处理文件 则需要一个编辑
  • 按名称而不是在 cx_Oracle 中的位置获取列值

    Using cx Oracle 我正在从 Oracle 数据库中选择数据 curs cxn cursor result curs execute SELECT FirstName LastName FROM Person 有没有办法只返回名
  • Joda-Time,没有日期的时间

    我想要一个只存储时间而不存储日期或日期的类 Joda Time 有这方面的课程吗 或者我是否必须使用日期时间并仅将时间部分转换为字符串 然后使用该部分 有的是LocalTime http joda time sourceforge net
  • 根据选择下拉列表 javascript 中的 ID 显示隐藏元素

    我知道这可能是最常被问到的问题 但我已经搜索了网络并尝试了几个例子 但没有一个起作用 这是我的问题 首先我无法控制TR TD结构 无法使用DIV 我需要能够根据选择的下拉菜单值显示某些 TD 我有 4 个不同的 id 我使用 to to f
  • 如何从两端迭代序列?

    我想 从两端 到 该部分的 中间 此处 迭代Python序列 的一部分 在 C C Java 中 我可能会尝试 int start 2 beyond 7 for int forward start back beyond forward l
  • 如果应用程序关闭则推送通知(React-Native)

    我正在开发 React native 应用程序 iOS 和 Android 服务器通过网络套接字连接 服务器发送有关某些特定事件的通知 应用程序应该通知用户 使用警报 如果我需要通知用户 即使应用程序正在后台运行或关闭 我该怎么做 推送通知
  • 如何去掉http://和www。使用 c# 从输入的域名

    在我正在开发的应用程序中 我们允许用户输入域名列表 我们希望用户以以下任何格式输入域名 stackoverflow com http www stackoverflow com www stackoverflow com http www
  • 如何将自定义 URL 协议与 ClickOnce 应用程序关联?

    我想关联一个自定义URL http en wikipedia org wiki Uniform Resource Locator协议 例如 myprotocol SomeFolder SomePage 与一个单击一次 http en wik
  • Laravel Eloquent 比较列值

    雄辩的where 比较两列值时似乎不起作用 如何修复它 示例代码 gt where table 1 name table 2 name 但适用于 gt where table 1 name john 在这种情况下不需要转义 您可以使用whe
  • Terraform API 网关未显示为 Lambda 的触发器

    我按照说明进行操作here https learn hashicorp com tutorials terraform lambda api gateway用于设置网关和 lambda 但它不起作用 症状似乎与描述的相同here https
  • 为什么在打印语句之前调用函数?

    include