1.對於字串陣列,可以用strlen( )函式來獲取字串陣列的長度。如:
char a1 = "fwegwe";
cout << strlen(a1) << endl;
2.對於一般的陣列,如:int a[ ] =;
可以用sizeof(a)/sizeof(a[0])來獲取陣列的長度。
原理:sizeof()函式可以返回陣列所佔的記憶體,而sizeof(a[0])返回的是陣列第乙個元素所佔的記憶體。
所以式子:sizeof(a)/sizeof(a[0])得到的就是陣列的個元素個數,也就是陣列的長度。
在c++中,如果要多次獲取不同陣列的長度,為了避免重複寫**,可以定義乙個求陣列長度的模板。
template
int getlength(t& array)
以後再使用時用getlength( )函式即可得到陣列的長度。
int a = ;
cout << "陣列的長度為:"<<getlength(a)<< endl;
3.對於乙個一維動態陣列,可以使用.size()函式來獲取陣列的個數。
還是用上面的陣列a[ ],加入乙個判斷,將大於50的值存入動態陣列b。然後獲取b的大小。
下面是完整**:
#include "iostream""
#include "vector"
using namespace std;
template//定義獲取陣列大小的模板
int getlength(t& array)
int main()
;vec
torb
; //建立動態陣列b
for (int i = 0; i < getlength(a); i++)
for (int i = 0; i < b.size(); i++)
cout <
靜態陣列和動態陣列的區別
靜態陣列在記憶體中位於棧區,是在定義時就已經在棧上分配了固定大小,在執行時這個大小不能改變,如 int a 10 在函式執行完以後,系統自動銷毀 動態陣列是malloc或者new出來的,位於記憶體的堆區,它的大小是在執行時給定,並且可以改變其,如 int a a new int 10 動態陣列,其建...
靜態陣列和動態陣列的區別
靜態陣列在記憶體中位於棧區,是在定義時就已經在棧上分配了固定大小,在執行時這個大小不能改變,如 int a 10 在函式執行完以後,系統自動銷毀 動態陣列是malloc或者new出來的,位於記憶體的堆區,它的大小是在執行時給定,並且可以改變其,如 int a a new int 10 動態陣列,其建...
C 中動態陣列 陣列引數
一 c 中的動態陣列 寫程式的時候,我在想動態陣列怎麼寫,new int,方括號中可以寫常量嗎,真是鬱悶,一些基本的知識都不記得,還是多練練吧。int pia new int 10 陣列的維數可以是任意的複雜表示式。delete pia 動態分配陣列時,陣列元素為類型別呼叫預設建構函式,內建型別的不...