1. 程式人生 > 其它 >C語言中智慧獲得陣列長度

C語言中智慧獲得陣列長度

技術標籤:# C++資料結構演算法⭐C/C++程式設計筆記演算法c語言資料結構陣列

int len = sizeof(陣列名) / sizeof(陣列元素型別);

例如:

int a[101];
int len = sizeof(a) / sizeof(int) << endl;

char chs[101];
int len2 = sizeof(a) / sizeof(char) << endl;

輸出:

101
101

原理:
一個數組有n個元素,每一個元素都有自己的長度,其中區分型別,這裡給一個常用的長度。

int  4位元組,32位
long long 8位元組,64位
char 1位元組 8位
bool 1位元組 8位

陣列一共有n個元素,那麼陣列總共佔用了陣列型別*陣列元素個數位元組。
所以sizeof(a)是總共,然後除以陣列型別,就是陣列元素個數,就是長度了。

即:sizeof(a) / sizeof(int) = len

當然,這種方法用於沒有給你長度的C陣列,但,也有很大缺點,比如你定義101個int元素的陣列,然後你輸入了51個,你是用這個方法還是101的長度,並沒有卵用,所以這篇文章等於白寫,一點都不智慧(寫到這裡才發現)