0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

【C語言經(jīng)典面試題】求數(shù)組元素的個數(shù)的宏定義

嵌入式物聯(lián)網(wǎng)開發(fā) ? 來源:嵌入式物聯(lián)網(wǎng)開發(fā) ? 作者:嵌入式物聯(lián)網(wǎng)開發(fā) ? 2022-10-02 11:58 ? 次閱讀

C語言經(jīng)典面試題】求數(shù)組元素的個數(shù)的宏定義

經(jīng)典面試題,有必要了解下!

1 問題描述

在C語言中,如何求一個數(shù)組中元素的個數(shù)呢?想想看!

2 示例代碼

為此,我簡單寫一段示例代碼:

?
#include 
#include 
?
#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
?
int test_array[] = {1, 2, 3, 4, 5, 6};
?
int main(int argc, const char *argv[])
{
printf("cnt: %d\\\\\\\\n", ARRAY_SIZE(test_array));
return 0;
}

重點語句就是: #define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])

3 總結

分析一下上面的宏定義:

先用sizeof數(shù)組求出整個數(shù)組所占的內(nèi)存大小 a;

其次用sizeof求出單個數(shù)組元素所占的內(nèi)存大小 b;

最后利用數(shù)組四線性存儲的特性,使用除法,用 a 除以 b,即可求出數(shù)組中元素的個數(shù)。

我們來看一下測試結果:

image-20220930230138696

這個與數(shù)據(jù)定義中的6個元素是保持一致的。

image-20220930230157289

4 更多分享

[架構師李肯]

架構師李肯全網(wǎng)同名 ),一個專注于嵌入式IoT領域的架構師。有著近10年的嵌入式一線開發(fā)經(jīng)驗,深耕IoT領域多年,熟知IoT領域的業(yè)務發(fā)展,深度掌握IoT領域的相關技術棧,包括但不限于主流RTOS內(nèi)核的實現(xiàn)及其移植、硬件驅(qū)動移植開發(fā)、網(wǎng)絡通訊協(xié)議開發(fā)、編譯構建原理及其實現(xiàn)、底層匯編及編譯原理、編譯優(yōu)化及代碼重構、主流IoT云平臺的對接、嵌入式IoT系統(tǒng)的架構設計等等。擁有多項IoT領域的發(fā)明專利,熱衷于技術分享,有多年撰寫技術博客的經(jīng)驗積累,堅信【知識改變命運,技術改變世界】!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7604

    瀏覽量

    136824
  • 數(shù)組
    +關注

    關注

    1

    文章

    417

    瀏覽量

    25947
  • 宏定義
    +關注

    關注

    0

    文章

    50

    瀏覽量

    9012
收藏 人收藏

    評論

    相關推薦

    面試題】人工智能工程師高頻面試題匯總:機器學習深化篇(題目+答案)

    ,或者深度學習的框架,還有怎么優(yōu)化模型,這些都是加分項,能有效提高面試通過率。本篇小編整理了一些高頻的機器學習深化方面的面試題,這些題目都是從實際面試中總結出來的,非
    的頭像 發(fā)表于 12-16 13:42 ?1936次閱讀
    【<b class='flag-5'>面試題</b>】人工智能工程師高頻<b class='flag-5'>面試題</b>匯總:機器學習深化篇(題目+答案)

    面試題】人工智能工程師高頻面試題匯總:Transformer篇(題目+答案)

    隨著人工智能技術的突飛猛進,AI工程師成為了眾多求職者夢寐以求的職業(yè)。想要拿下這份工作,面試的時候得展示出你不僅技術過硬,還得能解決問題。所以,提前準備一些面試常問的問題,比如機器學習的那些算法
    的頭像 發(fā)表于 12-13 15:06 ?502次閱讀
    【<b class='flag-5'>面試題</b>】人工智能工程師高頻<b class='flag-5'>面試題</b>匯總:Transformer篇(題目+答案)

    人工智能工程師高頻面試題匯總——機器學習篇

    ,或者深度學習的框架,還有怎么優(yōu)化模型,這些都是加分項,能有效提高面試通過率。本篇小編整理了一些高頻的機器學習方面的面試題,這些題目都是從實際面試中總結出來的,非常具
    的頭像 發(fā)表于 12-04 17:00 ?850次閱讀
    人工智能工程師高頻<b class='flag-5'>面試題</b>匯總——機器學習篇

    C語言數(shù)組應用計算機導論A第6講:數(shù)組

    C語言數(shù)組應用計算機導論A第6講:數(shù)組
    發(fā)表于 11-20 15:33 ?0次下載

    解讀版|Air780E軟件中C語言內(nèi)存數(shù)組的神秘面紗!

    今天我們來揭開Air780E 軟件中 C 語言內(nèi)存數(shù)組的神秘面紗,希望有所收獲。
    的頭像 發(fā)表于 11-17 10:00 ?251次閱讀
    解讀版|Air780E軟件中<b class='flag-5'>C</b><b class='flag-5'>語言</b>內(nèi)存<b class='flag-5'>數(shù)組</b>的神秘面紗!

    C語言指針運算符詳解

    C語言中,當你有一個指向數(shù)組中某個元素的指針時,你可以對該指針執(zhí)行某些算術運算,例如加法或減法。這些運算可以用來遍歷數(shù)組中的
    的頭像 發(fā)表于 10-30 11:16 ?255次閱讀

    C語言中最常見的定義寫法

    如果讓你用C語言寫個定義,我相信大部分同學順手就能寫出define。
    的頭像 發(fā)表于 10-28 11:12 ?277次閱讀

    C語言指針詳細解析

    。 二維數(shù)組 二維數(shù)組其實可以看成是一個矩陣,zai C語言中,定義個數(shù)組num[3][4],
    發(fā)表于 09-14 10:03

    在一個.c文件中定義個數(shù)組遇到的疑問求解

    在一個.c文件中定義個數(shù)組,然后在其他文件中引用,用sizeof求數(shù)組長度,那么按說是必須要聲明這個數(shù)組,并且應該指明
    發(fā)表于 05-14 07:03

    深入探索KUKA KRL中的數(shù)組應用

    如果 CHAR 類型數(shù)組的所有數(shù)組元素都擁有相同的字符串,則不必單獨初始化每個數(shù)組元素。忽略右側(cè)的數(shù)組
    的頭像 發(fā)表于 04-18 10:37 ?1247次閱讀
    深入探索KUKA KRL中的<b class='flag-5'>數(shù)組</b>應用

    隨機抽取SV數(shù)組中的一個元素方法實現(xiàn)

    如果想從一個關聯(lián)數(shù)組中隨機選取一個元素,需要逐個訪問它之前的元素,原因是沒辦法能夠直接訪問到第N個元素。上面的程序示范了如何從一個以整數(shù)值作為索引**的關聯(lián)
    的頭像 發(fā)表于 03-21 10:11 ?1009次閱讀
    隨機抽取SV<b class='flag-5'>數(shù)組</b>中的一個<b class='flag-5'>元素</b>方法實現(xiàn)

    嵌入式系統(tǒng)中C語言結構體的基礎實現(xiàn)與應用

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

    PHP中數(shù)組的使用方法!

    如何創(chuàng)建數(shù)組、添加/刪除元素、訪問數(shù)組元素、遍歷數(shù)組以及使用數(shù)組方法和函數(shù)等等。 首先,我們來看
    的頭像 發(fā)表于 01-12 15:11 ?551次閱讀

    經(jīng)典Linux面試題總結

    絕對路徑用什么符號表示?當前目錄、上層目錄用什么表示?主目錄用什么表示? 切換目錄用什么命令?
    的頭像 發(fā)表于 01-04 11:01 ?375次閱讀

    總結常見電路面試題

    輸入信號應提前時鐘上升沿(如上升沿有效)T時間到達芯片,這個T就是建立時間-Setup time。如不滿足setup time,這個數(shù)據(jù)就不能被這一時鐘打入觸發(fā)器,只有在下一個時鐘上升沿,數(shù)據(jù)才能被打入觸發(fā)器。
    的頭像 發(fā)表于 01-02 16:03 ?421次閱讀