C語言中智慧獲得陣列長度
阿新 • • 發佈:2021-01-04
技術標籤:# 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的長度,並沒有卵用,所以這篇文章等於白寫,一點都不智慧(寫到這裡才發現)