【C語言經典面試題】求數組元素的個數的宏定義
經典面試題,有必要了解下!
1 問題描述
在C語言中,如何求一個數組中元素的個數呢?想想看!
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數組求出整個數組所占的內存大小 a;
其次用sizeof求出單個數組元素所占的內存大小 b;
最后利用數組四線性存儲的特性,使用除法,用 a 除以 b,即可求出數組中元素的個數。
我們來看一下測試結果:

這個與數據定義中的6個元素是保持一致的。

4 更多分享
[架構師李肯]
架構師李肯 ( 全網同名 ),一個專注于嵌入式IoT領域的架構師。有著近10年的嵌入式一線開發經驗,深耕IoT領域多年,熟知IoT領域的業務發展,深度掌握IoT領域的相關技術棧,包括但不限于主流RTOS內核的實現及其移植、硬件驅動移植開發、網絡通訊協議開發、編譯構建原理及其實現、底層匯編及編譯原理、編譯優化及代碼重構、主流IoT云平臺的對接、嵌入式IoT系統的架構設計等等。擁有多項IoT領域的發明專利,熱衷于技術分享,有多年撰寫技術博客的經驗積累,堅信【知識改變命運,技術改變世界】!
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
C語言
+關注
關注
183文章
7644瀏覽量
145565 -
數組
+關注
關注
1文章
420瀏覽量
27351 -
宏定義
+關注
關注
0文章
51瀏覽量
9412
發布評論請先 登錄
相關推薦
熱點推薦
C語言插入排序算法和代碼
(int a[],int n);
//插入排序實現,這里按從小到大排序
void insert_sort(int a[],int n)//n為數組a的元素個數
{
//進行N-1輪插入過程
發表于 01-15 06:44
C語言中實現函數宏的三種方式
]
[tr][td]4. ({}) 方式
({}) 為 GNU C 擴展的語法,非 C 語言的原生語法。
INT_SWAP 宏使用 ({}) 封裝后形態如下:
#define I
發表于 12-29 07:34
瑞薩RA系列FSP庫開發實戰指南之定義傳輸源和目標存儲器
數組由于有const聲明為常量,因此其數據存儲在內部Flash 中,DST_Buffer為普通的全局變量,其數據存儲在RAM中。這兩個數組的大小由宏定義BUFFER_SIZE來決定。
數組的初體驗
袋中的物品是按一定順序放置的。
1.我們來看一下如何聲明一個數組:
數據類型 數組名稱[長度];
數組只聲明也不行啊,看一下數組是如何初始化的。說到初始化,
發表于 11-25 08:06
C語言宏拼接運算符典型使用
在C語言中,##運算符(稱為[size=16.002px]標記拼接運算符)用于宏定義中將兩個標記(token)拼接成一個新的標記。它在預處理階段處理,常用于動態生成變量名、函數名或類型
發表于 11-20 08:27
人工智能工程師高頻面試題匯總:循環神經網絡篇(題目+答案)
后臺私信雯雯老師,備注:循環神經網絡,領取更多相關面試題隨著人工智能技術的突飛猛進,AI工程師成為了眾多求職者夢寐以求的職業。想要拿下這份工作,面試的時候得展示出你不僅技術過硬,還得能解決問題。所以
用30道電子工程師面試題來拷問墮落的你...
今天用30道電子工程師面試題來拷問墮落的你,你能扛住第幾題?1、下面是一些基本的數字電路知識問題,請簡要回答之。(1)什么是Setup和Hold時間?答:Setup/HoldTime用于測試芯片
最全的硬件工程師筆試試題集
硬件面試題之一
1、下面是一些基本的數字電路知識問題,請簡要回答之。
(1) 什么是 Setup 和 Hold 時間?
答:Setup/Hold Time 用于測試芯片對輸入信號和時鐘信號之間的時間
發表于 06-26 15:34
《ESP32S3 Arduino開發指南》第三章 C/C++語言基礎
構成的集合。數組概念的引入,使得在處理多個相同類型的數據時程序更加清晰和簡潔。 定義方式如下:數據類型 數組名稱[數組元素
發表于 06-10 09:20
【硬件方向】名企面試筆試真題:大疆創新校園招聘筆試題
名企面試筆試真題:大疆創新校園招聘筆試題-硬件
是幾年前的題目,不過值得參考一下哦
純分享貼,有需要可以直接下載附件獲取完整資料!
(如果內容有幫助可以關注、點贊、評論支持一下哦~)
發表于 05-16 17:31
硬件工程師面試必看試題(經典)
硬件工程師面試試題
模擬電路
1、基爾霍夫定理的內容是什么?(仕蘭微電子)
2、平板電容公式(C=εS/4πkd)。(未知)
3、最基本的如三極管曲線特性。(未知)
4、描述反饋電路的概念
發表于 04-21 15:36
stm32 DMA串口接收到數組,數組元素順序錯亂怎么解決?
配置DMA循環模式,使用HAL_UART_Receive_DMA(&huart1,buffer,4)函數將串口數據循環發送到4個元素的buffer數組內,上位機20ms發送一次
發表于 03-12 08:02
【C語言經典面試題】求數組元素的個數的宏定義
評論