C 獲取陣列長度

2021-10-08 02:30:44 字數 1468 閱讀 5605

對於字串陣列,使用strlen()函式來獲取字串陣列的長度。

char a1 = "fwegweasdasdwqew";

cout << strlen(a1) << endl;

例如: int arr = ;可以用sizeof(a)/sizeof(a[0])來獲取陣列的長度。

原理:sizeof()函式可以返回陣列所佔的記憶體,而sizeof(a[0])返回的是陣列第乙個元素所佔的記憶體。

所以式子:**sizeof(a)/sizeof(a[0])**得到的就是陣列的個元素個數,也就是陣列的長度。

舉例說明:

#include

using

namespace std;

template

<

class

t>

intlength

(t& arr)

intmain()

;// 方法一

cout <<

"陣列的長度為:"

<<

length

(arr)

<< endl;

// 方法二

//cout << end(arr) << endl;

//cout << begin(arr) << endl;

cout <<

"陣列的長度為:"

<<

end(arr)

-begin

(arr)

<< endl;

system

("pause");

return0;

}

1 在c++中,如果要多次獲取不同陣列的長度,為了避免重複寫**,可以定義乙個求陣列長度的模板。

template int getlength(t& array)

2 陣列的傳遞形式:

#include

using

namespace std;

intgetsize

(int data)

intmain()

;int size1 =

sizeof

(data1)

;int

*data2 = data1;

int size2 =

sizeof

(data2)

;int size3 =

getsize

(data1)

;

cout<" "<" "

}

陣列作為函式引數傳遞的時候,傳遞的是指標,所以不能正確的求出子函式中傳遞進去的陣列的長度,切記。

詳細的可以看我的另一篇部落格:c++中陣列作為函式引數的注意問題

C 獲取陣列長度

c c 中如何獲取陣列的長度?如何獲取陣列的長度 2010 12 15 20 49 c c 中如何獲取陣列的長度?收藏 c c 中沒有提供 直接獲取陣列長度的函式,對於存放字串的字元陣列提供了乙個strlen函式獲取長度,那麼對於其他型別的陣列如何獲取他們的長度呢?其中一種方法是使 用sizeof ...

C 獲取陣列長度

一 靜態陣列。比如 int int ary 5 靜態陣列在編譯的時候就知道了陣列長度,這對編譯器來說挺好實現的。用得最多的大概就是sizeof了吧 define countof macro x sizeof x sizeof x 0 對於c 可以用模板。如果將陣列作為函式形參的話,它會退化成乙個指標...

C語言獲取陣列長度

1 c語言中,定義陣列後可以用sizeof命令獲得陣列的長度 可容納元素個數 例如 double a int length length sizeof a sizeof a 0 陣列佔記憶體總空間,除以單個元素佔記憶體空間大小 printf length of a d length 輸出length...