可以使用sizeof(a)/sizeof(a[0])
或sizeof(a)/sizeof(int)
來獲取元素個數。
#include
using
namespace std;
int a=
;int
main()
; cout <<
sizeof
(a)/
sizeof
(int
)<< endl;
// 3
cout <<
sizeof
(b)/
sizeof
(b[0])
<< endl;
// 3
return0;
}
不可以使用sizeof(a)/sizeof(a[0])
或sizeof(a)/sizeof(int)
來獲取元素個數。
因為sizeof(a)
中的a被認為是指標型別的位元組(32位機子結果是4位元組,64位機子結果是8位元組),而不是陣列的所佔的位元組。
/* 64位機子上 */
#include
using
namespace std;
void
func
(int a)
intmain()
;func
(a);
return0;
}
一般acm比賽用這樣。
#include
using
namespace std;
int a=
;void
func()
intmain()
一般排序演算法就採用這樣的形式。
#include
using
namespace std;
void
func
(int a,
int length)
intmain()
;int length =
sizeof
(a)/
sizeof
(a[0])
;// int length = sizeof(a) / sizeof(int);
func
(a, length)
;return0;
}
記得在陣列的相關部分初始化全域性變數length
#include
using
namespace std;
int length;
void
func
(int a)
intmain()
; length =
sizeof
(a)/
sizeof
(a[0])
;// length = sizeof(a) / sizeof(int);
func
(a);
return0;
}
int 儲存大小 陣列元素個數
為了得到某個型別或某個變數在特定平台上的準確大小,您可以使用 sizeof 運算子。表示式 sizeof type 得到物件或型別的儲存位元組大小。下面的例項演示了獲取 int 型別的大小 例項 include include int main printf int 儲存大小 lu n sizeof...
C C 統計兩個陣列中不同元素的個數
c c 統計兩個陣列中不同元素的個數 統計兩個陣列中不同元素的個數 陣列中不含重複元素 include stdafx.h include stdio.h include stdlib.h includeusing namespace std int match2array int parray1,i...
C C 獲取陣列的長度
c c 中沒有提供 直接獲取陣列長度的函式,對於存放字串的字元陣列提供了乙個strlen函式獲取長度,那麼對於其他型別的陣列如何獲取他們的長度呢?其中一種方法是使 用sizeof array sizeof array 0 在c語言中習慣上在 使用時都把它定義成乙個巨集,比如 define get a...