【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語言
+關注
關注
180文章
7614瀏覽量
137718 -
數組
+關注
關注
1文章
417瀏覽量
26028 -
宏定義
+關注
關注
0文章
51瀏覽量
9051
發布評論請先 登錄
相關推薦
評論