一、獲取數組長度的函數
C++中獲取數組長度的方法比較簡單,可以直接使用sizeof()函數。具體來說,如果想獲取數組arr的元素個數,可以使用如下代碼:
int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(arr[0]);
這裡使用sizeof(arr)獲取整個數組的字節大小,再除以sizeof(arr[0])獲取單個元素的字節大小,從而得到元素個數。注意,這種方法只適用於靜態數組,對於動態數組或指針指向的數組需要採取其他方法。
二、c語言獲取數組長度函數
如果需要在C語言中獲取數組長度,可以使用一個自定義的函數來實現。該函數基於以下思路:
- 定義一個指針
p指向數組的首地址 - 使用循環遍曆數組中的元素,每次將
p向後移動一個元素的大小,直到指向數組最後一個元素的下一個位置 - 記錄移動的次數,即為數組的元素個數
下面是該函數的代碼實現:
int getLength(int arr[]) {
int* p = arr;
int count = 0;
while (*p) {
count++;
p++;
}
return count;
}
該函數接受一個整型數組作為參數,返回數組的元素個數。需要注意的是,在調用該函數的時候,數組必須以一個0結尾。
三、將獲取數組長度的方法封裝成模板函數
為了方便地獲取任意類型數組的長度,可以將獲取數組長度的方法封裝成一個模板函數。實現方法與上述getLength()函數類似,只不過需要使用指針運算實現。
template <typename T, size_t N>
size_t getArrayLen(T(&)[N]) {
return N;
}
可以使用該函數來獲取任意類型數組的長度,例如:
int arr[] = {1, 2, 3, 4, 5};
int len = getArrayLen(arr); // len為5
double dArr[] = {1.1, 2.2, 3.3};
int len = getArrayLen(dArr); // len為3
四、總結
本文介紹了多種方法獲取C++數組的長度,包括使用sizeof()函數、自定義的C語言函數和模板函數等。這些方法可以幫助我們在編寫代碼時更加方便地操作數組,提高效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/309297.html
微信掃一掃
支付寶掃一掃