C 中獲取陣列的長度

2021-10-24 02:09:57 字數 1586 閱讀 5041

#include

intmain()

注:陣列形參和指標形參的方式傳遞陣列,會有指標降級,即不能在自定義內部通過sizeof( arr ) / sizeof( arr[0] )的方式獲取陣列元素個數

#include

template

<

typename t, size_t n>

inline size_t count

( t (

& arr )

[n])

intmain()

傳遞陣列的引用的方式,並且傳入大小引數n。

呼叫的時候,只需傳遞 陣列名即可

這裡其實這樣寫,得到的結果也一樣。

#include

template

<

typename t, size_t n>

inline size_t count

( t (

& arr )

[n])

intmain()

驗證一下,呼叫時是否能傳遞大小引數。count( arr[3] )的形式。

#include

template

<

typename t, size_t n>

inline size_t count

( t (

& arr )

[n])

intmain()

編譯報錯:

[error] no matching function

for call to 'count(int&)'

另一種方式不加n,直接模板引數傳遞引用的方式也可以:

#include

template

<

typename t, size_t n>

size_t count

( t (

& arr )

[n])

template

<

typename t>

size_t getarraylen

(t& array)

intmain()

包含此標頭檔案

#include

#include

intmain()

#include

template

<

typename t>

class

computesize

;template

<

typename t, size_t n>

class

computesize

>

;int

main()

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 獲取陣列長度

對於字串陣列,使用strlen 函式來獲取字串陣列的長度。char a1 fwegweasdasdwqew cout strlen a1 endl 例如 int arr 可以用sizeof a sizeof a 0 來獲取陣列的長度。原理 sizeof 函式可以返回陣列所佔的記憶體,而sizeof ...