導航:首頁 > 整形美容 > C怎麼取整形數組的長度

C怎麼取整形數組的長度

發布時間:2021-02-24 23:13:08

1. C/C++中如何獲取數組的長度

1. 算術表達式:

#include<iostream>

intmain(){
intarr[4];
std::cout<<sizeof(arr)/sizeof(arr[0])<<std::endl;//輸出4
}

或者

#include<iostream>

intmain(){
intarr[4];
std::cout<<sizeof(arr)/sizeof(*arr)<<std::endl;//輸出4
}

2. 函數模板參數自動推斷:

#include<iostream>

template<typenameT,size_tN>
inlinesize_tCount(T(&arr)[N]){
returnN;
}

intmain(){
intarr[4];
std::cout<<Count(arr)<<std::endl;//輸出4
}

3.標准C++模板庫:

#include<type_traits>//注意包含此頭文件.
#include<iostream>

intmain(){
intarr[4];
std::cout<<std::extent<decltype(arr),0>::value<<std::endl;//輸出4
}

4.模板特化與自動類型推斷:

include<iostream>
template<typenameT>
classComputeSize;

template<typenameT,size_tN>
classComputeSize<T[N]>{
public:
staticconstsize_tvalue=N;
};

intmain(){
intarr[4];
std::cout<<ComputeSize<decltype(arr)>::value<<std::endl;//輸出4
}

5. Visual C++編譯器預定義宏:

#include<cstdlib>
#include<iostream>

intmain(){
intarr[4];
std::cout<<_countof(arr)<<std::endl;//輸出4.
}

6. boost庫:

#include"boost/range.hpp"
#include<iostream>

intmain(){
intarr[4];
std::cout<<boost::size(arr)<<std::endl;//輸出4
}

上面的方法適用於靜態數組,動態的數組(new[])是無法獲取元素個數的。


上面的代碼,自己可以編譯運行看看,如果手上沒有編譯器測試上面的代碼或者編譯失敗,可以在下面的頁面上編譯運行(最新版本的Visual C++):

http://webcompiler.cloudapp.net/

2. c語言怎麼獲取數組的長度

c語言提抄供三種定義數組的方襲式:

第一種:

int arr[5]={1,2,3,4,5};

第二種:

int arr[5];

arr[0]=1;

arr[1]=2;

....

arr[4]=5;

第三種:

int arr[]={1,2,3,4,5,6};

拓展資料

C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。



3. C裡面怎麼獲得一個數組的長度(元素個數)

用sizeof肯定不行,函數中s[]被當成指針了,所以sizeof出來的結果肯定是4。
我剛專才也遇到了和你一樣的問題,屬在網上轉了半天才有一點收獲,把我的收獲無私的共享給你吧。
c/c++天生設計缺陷註定了求不出s的長度的。所以一般傳數組或指針時都會把數組的長度或指針指向數組的長度作為參數傳進去。

4. C中怎樣整形數組的長度

c語言復中,定義數組後可以制用sizeof命令獲得數組的長度(可容納元素個數)
如:
{
int data[4];
int length;
length=sizeof(data)/sizeof(data[0]); //數組占內存總空間,除以單個元素占內存空間大小
printf("length of data[4]=%d", length ); //輸出length of data[4]=4
}

5. C語言 怎麼計算整型數組的長度

假設數組名為a
則用語句:sizeof(a)/sizeof(a[0]);

6. c語言怎麼獲取數組的長度,

c語言中,定義數組後可以用sizeof命令獲得數組的長度(可容納元素個數)

如:

{
intdata[4];
intlength;
length=sizeof(data)/sizeof(data[0]);//數組占內存總空間,除以單個元素占內存空間大小
printf("lengthofdata[4]=%d",length);//輸出lengthofdata[4]=4
}

但,通過傳遞數組名參數到子函數中,以獲得數組長度是不可行的。如:

intgetLength(int[]a){
intlength;
length=sizeof(a)/sizeof(a[0]);//這樣是錯誤的,得到的結果永遠是1
returnlength;
}
因為,a是函數參數,到了本函數中,a只是一個指針(地址,系統在本函數運行時,是不知道a所表示的地址有多大的數據存儲空間,這里只是告訴函數:一個數據存儲空間首地址),所以,sizoef(a)的結果是指針變數a占內存的大小,一般在32位機上是4個位元組。a[0]是int類型,sizeof(a[0])也是4個位元組,所以,結果永遠是1。

因此,獲得數組長度,只能在數組定義所在的代碼區中,採用以上方法,才可以達到效果。

7. C語言 怎麼判斷一個整數數組長度

只要進行了聲明,就會自動開辟出內存來存放這些數據,裡面的數據如果不加定義,就是隨機數,你說的存的數,只是加以定義,即重新賦值,所以strlen()是不行的

8. c++ 怎麼取整形數組的長度

一般情況用sizeof運算符,
比如一個叫array名字的數組:
int
len
=
sizeof(array)/sizeof(array[0]);
len
就保存了array的數組長度。
另外,如果數專組是引用傳屬遞可以通過函數模板的實參推斷來自動獲得它長度,代碼如下:
//連續列印一個數組的元素到控制台
template
<typename
T,
int
N>
void
print(T
(&arr)[N])
{
for
(int
i=0;
i<N;
++i){
cout
<<
arr[i];
}
}
//示例
int
main()
{
int
arrays[]
=
{1,2,3,4,5};
print(arrays);
return
0;
}

9. C中怎樣求一個整形數組的長度

int GetNum(int a[])
{

int n=0;

while (a[n]!=-858993460)

{

n++;

}

return i;
}

10. C/C++中如何獲取數組的長度

方法:

使用復sizeof(array) / sizeof(array[0]), 在C語言中習制慣上,在使用時都把它定義成一個宏。

比如#define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]));} 。而在C++中則可以使用模板技術定義一個函數。

比如:template <class T>intgetArrayLen(T& array){return (sizeof(array) / sizeof(array[0]));}

這樣對於不同類型的數 組都可以使用這個宏或者這個函數來獲取數組的長度了。

閱讀全文

與C怎麼取整形數組的長度相關的資料

熱點內容
35歲乾性皮膚起痘用什麼護膚品 瀏覽:290
深海娜美皮膚多少錢 瀏覽:532
正品減肥多少錢 瀏覽:837
蒙妮坦美容養生館靖南店怎麼樣 瀏覽:417
蘭州哪裡有白癜風醫院 瀏覽:50
做隆鼻哪裡整形醫院比較好 瀏覽:590
怎麼測試皮膚的年齡呢 瀏覽:516
植藻水能量化妝品多少錢一瓶 瀏覽:350
贛州市皮膚病哪裡最好的醫院 瀏覽:741
晩上吃什麼水果減肥 瀏覽:824
上海美容紋眉多少錢 瀏覽:506
汽車美容店換機油要什麼證 瀏覽:196
八大處整形外科醫院住哪裡 瀏覽:612
化妝生產許可證號在哪裡 瀏覽:212
中性皮膚適合用哪個護膚品比較好 瀏覽:192
舟山婦科醫院怎麼樣 瀏覽:928
皮膚敏感期擦什麼護膚品 瀏覽:755
水劑類化妝品包括哪些 瀏覽:921
珠海整形醫生方明技術怎麼樣 瀏覽:567
無錫整形哪裡好擅選瑪利亞重點 瀏覽:317