【C語(yǔ)言經(jīng)典面試題】求數(shù)組元素的個(gè)數(shù)的宏定義
經(jīng)典面試題,有必要了解下!
1 問(wèn)題描述
在C語(yǔ)言中,如何求一個(gè)數(shù)組中元素的個(gè)數(shù)呢?想想看!
2 示例代碼
為此,我簡(jiǎn)單寫一段示例代碼:
?
#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)語(yǔ)句就是: #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ù)。
我們來(lái)看一下測(cè)試結(jié)果:
這個(gè)與數(shù)據(jù)定義中的6個(gè)元素是保持一致的。
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)的對(duì)接、嵌入式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ù)改變世界】!
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7630瀏覽量
140702 -
數(shù)組
+關(guān)注
關(guān)注
1文章
419瀏覽量
26410 -
宏定義
+關(guān)注
關(guān)注
0文章
51瀏覽量
9190
發(fā)布評(píng)論請(qǐng)先 登錄
【硬件方向】名企面試筆試真題:大疆創(chuàng)新校園招聘筆試題
硬件工程師面試必看試題(經(jīng)典)
stm32 DMA串口接收到數(shù)組,數(shù)組元素順序錯(cuò)亂怎么解決?
【面試題】人工智能工程師高頻面試題匯總:概率論與統(tǒng)計(jì)篇(題目+答案)

C語(yǔ)言筆試題
數(shù)組的下標(biāo)為什么可以是負(fù)數(shù)
【面試題】人工智能工程師高頻面試題匯總:機(jī)器學(xué)習(xí)深化篇(題目+答案)

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

人工智能工程師高頻面試題匯總——機(jī)器學(xué)習(xí)篇

C語(yǔ)言數(shù)組應(yīng)用計(jì)算機(jī)導(dǎo)論A第6講:數(shù)組
解讀版|Air780E軟件中C語(yǔ)言內(nèi)存數(shù)組的神秘面紗!

評(píng)論