衡阳派盒市场营销有限公司

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

    文章

    7614

    瀏覽量

    137702
  • 代碼
    +關注

    關注

    30

    文章

    4825

    瀏覽量

    69039

原文標題:又一個無解筆試題

文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    C語言程序設計教程第4版第8講:指針

    C語言指針講解
    發表于 11-20 14:10 ?0次下載

    C語言經典筆試題集錦

    有以下程序,如果 x 等于 254,則函數的返回值是多少?
    的頭像 發表于 11-09 11:39 ?279次閱讀

    C語言指針學習筆記

    本文從底層內存分析,徹底讓讀者明白C語言指針的本質。
    的頭像 發表于 11-05 17:40 ?302次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>指針學習筆記

    C語言中的socket編程基礎

    Socket編程簡介 Socket是一種通信機制,允許程序之間進行通信。在C語言中,socket編程是網絡編程的基礎。通過使用socket,程序可以發送和接收數據,實現不同計算機之間的通信
    的頭像 發表于 11-01 16:51 ?464次閱讀

    C語言C++中結構體的區別

    同樣是結構體,看看在C語言C++中有什么區別?
    的頭像 發表于 10-30 15:11 ?354次閱讀

    C語言與Java語言的對比

    C語言和Java語言都是當前編程領域中的重要成員,它們各自具有獨特的優勢和特點,適用于不同的應用場景。以下將從語法特性、內存管理、跨平臺性、性能、應用領域等多個方面對C
    的頭像 發表于 10-29 17:31 ?430次閱讀

    C語言與其他編程語言的比較

    C語言作為一種歷史悠久的編程語言,自其誕生以來,一直在軟件開發領域扮演著重要角色。它以其高效、靈活和可移植性強的特點,成為了系統級編程的首選語言之一。
    的頭像 發表于 10-29 17:30 ?366次閱讀

    hex文件如何查看原c語言代碼

    直接將 .hex 文件轉換回原始的 C 語言代碼是不可能的,因為 .hex 文件是二進制文件,它包含了單片機程序編譯后的機器碼,這些機器碼與原始的 C 語言代碼在結構和表達上存在巨大的
    的頭像 發表于 09-02 10:37 ?2775次閱讀

    C++語言基礎知識

    電子發燒友網站提供《C++語言基礎知識.pdf》資料免費下載
    發表于 07-19 10:58 ?7次下載

    按照這樣學習C語言,成為卷王不是夢!

    在計算機編程領域,C語言被譽為一種強大而靈活的編程語言,掌握好C語言不僅可以讓你輕松駕馭各種編程任務,還能夠為你的職業生涯打下堅實的基礎。但
    的頭像 發表于 07-06 08:04 ?357次閱讀
    按照這樣學習<b class='flag-5'>C</b><b class='flag-5'>語言</b>,成為卷王不是夢!

    PLC編程語言C語言的區別

    在工業自動化和計算機編程領域中,PLC(可編程邏輯控制器)編程語言C語言各自扮演著重要的角色。盡管兩者都是編程語言,但它們在多個方面存在顯著的區別。本文將從多個維度深入探討PLC編程
    的頭像 發表于 06-14 17:11 ?3230次閱讀

    C語言基礎-為什么要使用C?

    當今最流行的 Linux 操作系統和 RDBMS(Relational Database Management System:關系數據庫管理系統) MySQL 都是使用 C 語言編寫的。
    發表于 03-25 11:20 ?489次閱讀

    char是有符號類型還是無符號類型?

    看一個C語言筆試題,題目很簡單,問char是有符號類型還是無符號類型?
    的頭像 發表于 03-17 10:15 ?1314次閱讀

    嵌入式系統中C語言結構體的基礎實現與應用

    C語言中的數組只能允許程序員定義存儲相同類型數據。但是結構是C語言編程中允許您存儲不同數據類型的數據。
    發表于 03-12 14:29 ?555次閱讀
    嵌入式系統中<b class='flag-5'>C</b><b class='flag-5'>語言</b>結構體的基礎實現與應用

    C語言#define的應用

    C/C++ 編程語言中,當程序被編譯時,被發送到編譯器,編譯器將程序轉換為機器語言,然后完成編譯并執行該程序。預處理器也稱為宏預處理器。
    發表于 03-06 11:29 ?425次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>#define的應用
    百家乐官网游戏群号| 棋牌游戏中心| 百家乐官网分析网| 真人轮盘游戏| 网络百家乐的玩法技巧和规则| 永利百家乐官网娱乐场| 博娱乐城| rmb百家乐的玩法技巧和规则| 克拉克百家乐官网的玩法技巧和规则| 泰兴市| 大发888游戏平台hg dafa888gw| 百家乐赌博怎么玩| 海兴县| 申博娱乐城开户| 东方太阳城二期| 在线百家乐3d| 微信百家乐官网群二维码| 百家乐官网免佣台| 晋江市| 百家乐打劫法| 明升百家乐QQ群| 百家乐官网有不有作弊| 天猫国际娱乐城| 娱乐城简介| 大发888注册送| 大发8888| 广州百家乐赌城| 百家乐转盘技巧| 百家乐官网秘籍下注法| 连环百家乐官网的玩法技巧和规则| 新澳门百家乐官网软件下载| 百家乐官网视频游戏中心| 百家乐官网预测和局| 长乐坊百家乐官网娱乐城| 圣淘沙百家乐官网现金网| 百家乐官网如何投注法| 乐百家乐官网彩娱乐城| 百家乐官网有电脑游戏吗| 百家乐官网辅助工具| 老牌百家乐官网娱乐城| 百家乐官网技巧看路|