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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

【C語言經(jīng)典面試題】求數(shù)組元素的個(gè)數(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ù)組元素的個(gè)數(shù)的宏定義

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

1 問題描述

在C語言中,如何求一個(gè)數(shù)組中元素的個(gè)數(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;
}

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

3 總結(jié)

分析一下上面的宏定義:

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

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

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

我們來看一下測試結(jié)果:

image-20220930230138696

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

image-20220930230157289

4 更多分享

[架構(gòu)師李肯]

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

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

    關(guān)注

    180

    文章

    7581

    瀏覽量

    135571
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    411

    瀏覽量

    25858
  • 宏定義
    +關(guān)注

    關(guān)注

    0

    文章

    49

    瀏覽量

    8981
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

    labview怎么查數(shù)組中相同元素個(gè)數(shù)

    要查找LabVIEW中數(shù)組中相同元素個(gè)數(shù),可以使用以下步驟: 創(chuàng)建一個(gè)包含要查找的數(shù)值的數(shù)組。這可以通過手動(dòng)輸入數(shù)組
    的頭像 發(fā)表于 12-28 16:42 ?2906次閱讀

    C語言-#和##的具體用法

    C語言中,在里面使用’#’和’##’有它非常神奇的作用。在定義的替換的過程中,#號(hào)可以作為一個(gè)預(yù)處理運(yùn)算符,把
    的頭像 發(fā)表于 12-19 12:54 ?3696次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>-#和##的具體用法

    C語言中的數(shù)組格式與初始化

    ????數(shù)組:只能存放一種數(shù)據(jù)類型,比如int類型的數(shù)組、float類型的數(shù)組,里面存放的數(shù)據(jù)稱為“元素”。 ????數(shù)組
    的頭像 發(fā)表于 11-26 16:12 ?708次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中的<b class='flag-5'>數(shù)組</b>格式與初始化

    C語言數(shù)組的用法

    C語言數(shù)組是一種數(shù)據(jù)結(jié)構(gòu),它可以存儲(chǔ)多個(gè)相同類型的數(shù)據(jù),例如整數(shù),字符,浮點(diǎn)數(shù)等。數(shù)組的每個(gè)元素都有一個(gè)索引,用來表示它在
    的頭像 發(fā)表于 11-24 17:48 ?1144次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中<b class='flag-5'>數(shù)組</b>的用法

    c語言中多維數(shù)組可以嵌套定義

    C語言中多維數(shù)組可以嵌套定義,這使得我們可以在一個(gè)數(shù)組中存儲(chǔ)另一個(gè)數(shù)組。通過這種方式,我們可以創(chuàng)
    的頭像 發(fā)表于 11-24 10:18 ?931次閱讀

    c語言數(shù)組怎么定義

    C語言中,數(shù)組是一種用來存儲(chǔ)相同類型元素的數(shù)據(jù)結(jié)構(gòu)。它可以存儲(chǔ)多個(gè)元素,并通過一個(gè)共同的名稱來引用這些
    的頭像 發(fā)表于 11-24 10:11 ?2565次閱讀

    C語言如何創(chuàng)建數(shù)組

    C語言是一種非常強(qiáng)大和靈活的編程語言,它提供了若干數(shù)據(jù)類型來存儲(chǔ)和操作數(shù)據(jù)。其中之一就是數(shù)組,它可以用來存儲(chǔ)一系列具有相同數(shù)據(jù)類型的元素。本
    的頭像 發(fā)表于 11-24 10:08 ?1526次閱讀

    c語言數(shù)組中查找指定元素

    C語言是一種通用的編程語言,廣泛應(yīng)用于各種領(lǐng)域,包括嵌入式系統(tǒng)、操作系統(tǒng)、游戲開發(fā)等。在C語言中,數(shù)組
    的頭像 發(fā)表于 11-24 10:07 ?3279次閱讀

    c語言字符串定義

    字符串的定義、初始化、操作和常見問題。 字符串的定義和初始化 在C語言中,字符串被定義為一個(gè)字符數(shù)組
    的頭像 發(fā)表于 11-24 10:02 ?1655次閱讀

    c語言max函數(shù)在哪個(gè)庫

    C語言的max函數(shù)并不屬于標(biāo)準(zhǔn)C庫,它通常是由程序員自己編寫的一個(gè)定義。max函數(shù)用于比較兩個(gè)數(shù)
    的頭像 發(fā)表于 11-22 10:18 ?2997次閱讀

    硬件工程師經(jīng)典面試題詳解

    硬件工程師經(jīng)典面試題詳解
    的頭像 發(fā)表于 11-20 15:08 ?1288次閱讀
    硬件工程師<b class='flag-5'>經(jīng)典</b><b class='flag-5'>面試題</b>詳解

    c語言經(jīng)典教程

    電子發(fā)燒友網(wǎng)站提供《c語言經(jīng)典教程.rar》資料免費(fèi)下載
    發(fā)表于 11-20 11:45 ?6次下載
    <b class='flag-5'>c</b><b class='flag-5'>語言</b><b class='flag-5'>經(jīng)典</b>教程

    C語言求數(shù)組長度的5種方法

    [0]);printf("Arraylength:%d\n",length);return0;}解析:sizeof(array)返回整個(gè)數(shù)組的字節(jié)大小,sizeo
    的頭像 發(fā)表于 11-19 08:00 ?2510次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>求數(shù)組</b>長度的5種方法