0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言笔试题

学益得智能硬件 来源:学益得智能硬件 2024-12-30 09:48 次阅读

来看一个C语言笔试题,应该很少有人能给出正确答案。

#include 


int f(){
    printf("this is f ...
"); return 1;
}


int g(){
    printf("this is g ...
"); return 2;
}


int main()
{
    printf("%d %d
", f(), g());


    return 0;
}

代码很简单,函数 f 输出一个字符串,返回整数 1。

函数 g 输出一个字符串,返回整数 2。

主函数中用 printf 输出两个函数的函数值,后面的参数一个是函数 f,一个是函数 g。

运行程序应该会有三行输出,两个函数输出两个,主函数中再打印两个数字。

问题是,这三个输出的顺序应该是什么样的?有没有同学能看出答案,可以写在评论区。

运行程序,先打印 g,再打印 f,最后输出 1 2。

这个结果确实耐人寻味,先调用了函数 g,然后再调用函数 f,写在前面的反而最后调用。

不过这还没结束,再来换个 ARM 平台。

相同的代码,这次却先输出 f,再输出 g,顺序和参数的顺序一致。

好像已经看出了结果,调用的顺序不一定,得看编译器。

最后,再来看下C语言官方文档,确实提到了这一点,函数参数的计算顺序属于为指定行为。

之所以未指定,是想让编译器充分利用自身架构的特点,所以在写代码的时候,不要依赖他们的计算顺序。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7605

    浏览量

    136959
  • 代码
    +关注

    关注

    30

    文章

    4791

    浏览量

    68669

原文标题:又一个无解笔试题

文章出处:【微信号:学益得智能硬件,微信公众号:学益得智能硬件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C语言经典笔试题集锦

    有以下程序,如果 x 等于 254,则函数的返回值是多少?
    的头像 发表于 11-09 11:39 226次阅读

    C语言指针学习笔记

    本文从底层内存分析,彻底让读者明白C语言指针的本质。
    的头像 发表于 11-05 17:40 248次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>指针学习笔记

    C语言C++中结构体的区别

    同样是结构体,看看在C语言C++中有什么区别?
    的头像 发表于 10-30 15:11 247次阅读

    C语言与Java语言的对比

    C语言和Java语言都是当前编程领域中的重要成员,它们各自具有独特的优势和特点,适用于不同的应用场景。以下将从语法特性、内存管理、跨平台性、性能、应用领域等多个方面对C
    的头像 发表于 10-29 17:31 356次阅读

    C语言与其他编程语言的比较

    C语言作为一种历史悠久的编程语言,自其诞生以来,一直在软件开发领域扮演着重要角色。它以其高效、灵活和可移植性强的特点,成为了系统级编程的首选语言之一。
    的头像 发表于 10-29 17:30 293次阅读

    C++语言基础知识

    电子发烧友网站提供《C++语言基础知识.pdf》资料免费下载
    发表于 07-19 10:58 7次下载

    按照这样学习C语言,成为卷王不是梦!

    在计算机编程领域,C语言被誉为一种强大而灵活的编程语言,掌握好C语言不仅可以让你轻松驾驭各种编程任务,还能够为你的职业生涯打下坚实的基础。但
    的头像 发表于 07-06 08:04 325次阅读
    按照这样学习<b class='flag-5'>C</b><b class='flag-5'>语言</b>,成为卷王不是梦!

    PLC编程语言C语言的区别

    在工业自动化和计算机编程领域中,PLC(可编程逻辑控制器)编程语言C语言各自扮演着重要的角色。尽管两者都是编程语言,但它们在多个方面存在显著的区别。本文将从多个维度深入探讨PLC编程
    的头像 发表于 06-14 17:11 2869次阅读

    C语言基础-为什么要使用C

    当今最流行的 Linux 操作系统和 RDBMS(Relational Database Management System:关系数据库管理系统) MySQL 都是使用 C 语言编写的。
    发表于 03-25 11:20 451次阅读

    char是有符号类型还是无符号类型?

    看一个C语言笔试题,题目很简单,问char是有符号类型还是无符号类型?
    的头像 发表于 03-17 10:15 1270次阅读

    C语言#define的应用

    C/C++ 编程语言中,当程序被编译时,被发送到编译器,编译器将程序转换为机器语言,然后完成编译并执行该程序。预处理器也称为宏预处理器。
    发表于 03-06 11:29 385次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>#define的应用

    plc编程语言c语言的联系 c语言和PLC有什么区别

    PLC编程语言C语言的联系 PLC(可编程逻辑控制器)是一种针对自动化控制系统的特殊计算机。PLC编程语言是为了控制和管理自动化生产过程中的各种设备而设计的。与之相比,
    的头像 发表于 02-05 14:21 4171次阅读

    c语言,c++,java,python区别

    C语言C++、Java和Python是四种常见的编程语言,各有优点和特点。 C语言
    的头像 发表于 02-05 14:11 2427次阅读

    vb语言c++语言的区别

    VB语言C++语言是两种不同的编程语言,虽然它们都属于高级编程语言,但在设计和用途上有很多区别。下面将详细比较VB
    的头像 发表于 02-01 10:20 2360次阅读

    如何解决C语言中的“访问权限冲突”异常?C语言引发异常原因分析

    如何解决C语言中的“访问权限冲突”异常?C语言引发异常原因分析  在C语言中,访问权限冲突异常通
    的头像 发表于 01-12 16:03 5791次阅读