Ⅰ c語言中如何求數組長度
比如說是int類型的數組, 數組為 int arr[ ]={3,5,6,5,......}
計算數組中元素個數的方法為,求出總數組大小,除以每個元素的大小,就得出元素的個數。
個數= sizeof(arr) / sizeof(int)
注意: 這里的arr單獨出現的話代表的是整個數組,不是首地址。
若想讓它代表首地址, 用arr+0即可, 比如求首地址的大小, 其實就是指針的大小4,
sizeof(arr+0) 結果肯定是4. 不信你自己cout輸出測試下。
同理,無論什麼類型的數組,都用這種方法
sizeof(首指針) / sizeof(類型)
Ⅱ 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。
因此,獲得數組長度,只能在數組定義所在的代碼區中,採用以上方法,才可以達到效果。
拓展資料:
數組特點:
數組是相同數據類型的元素的集合。
數組中的各元素的存儲是有先後順序的,它們在內存中按照這個先後順序連續存放在一起。
數組元素用整個數組的名字和它自己在數組中的順序位置來表示。例如,a[0]表示名字為a的數組中的第一個元素,a[1]代表數組a的第二個元素,以此類推。
對於VB的數組,表示數組元素時應注意:
下標要緊跟在數組名後,而且用圓括弧括起來(不能用其他括弧)。
下標可以是常量,變數,或表達式,但其值必須是整數(如果是小數將四捨五入為整數)。
下標必須為一段連續的整數,其最小值成為下界,其最大值成為上界。不加說明時下界值默認為1。
Ⅲ c語言如何求一個數組的最大值和最小值
data_type
max=0;//定義兩個全局變數,max表示最大值
data_type
min=0;//min表示最小值
void
func(data_type
a[],int
n)//傳遞數組名與數組的大小n
{
max=min=a[0];//初始化
for(int
i=0,i<n,i++)//循環n次
{
if(max<a[i])
max=a[i];//如果當前的a[i]比max大,則max取a[i]
if(min>a[i])
min=a[i];//同理
}
reture;//返回
}
Ⅳ C語言中結構體數組長度怎麼計算
結構體數組的長度計算方法和普通數組相同。
1、c語言中,定義數組後可以用sizeof命令獲得數組的長度(即可容納元素個數)。但是通過傳遞數組名參數到子函數中,以獲得數組長度是不可行的,因為在子函數當中,數組名會退化為一個指針。
2、例如:
int
data[4],length;
length=sizeof(data)/sizeof(data[0]);
//數組占內存總空間除以單個元素占內存空間大小,即等於元素個數
printf("length
of
data[4]=%d",
length
);
//輸出length
of
data[4]=4
Ⅳ C語言中如何計算一個數組占內存多少空間
如果一個數組的長度是n(即有n個元素),元素的類型是XXX,則n*sizeof(XXX)就是這個數組所佔內存空間的位元組數。
Ⅵ C語言中如何計算一個數組占內存多少空間
C語言中數組的sizeof值等於數組所佔用的內存位元組數。
C語言中有一個專門用於檢測類型或變數或數組在內存中所佔有的空間(位元組數)的操作符sizeof,用sizeof可以直接檢測出數組在內存佔有的位元組數。
語法規則是:sizeof(x); (識別沒有歧義時也可寫成sizeof x;)——其中x是類型名、變數名或數組名等,返回x所佔位元組數(int型)。
(6)c語言計算數組大小擴展閱讀:
sizeof的使用規則:
1、基本數據類型的sizeof:
這里的基本數據類型指short、int、long、float、double這樣的簡單內置數據類型,由於它們都是和系統相關的,所以在不同的系統下取值可能不同,這務必引起我們的注意,盡量不要在這方面給自己程序的移植造成麻煩。一般的,在32位編譯環境中,sizeof(int)的取值為4。
2、指針變數的sizeof:
指針變數的sizeof值與指針所指的對象沒有任何關系,正是由於所有的指針變數所佔內存大小相等,所以MFC消息處理函數使用兩個參數WPARAM、LPARAM就能傳遞各種復雜的消息結構(使用指向結構體的指針)。
Ⅶ 怎樣在c語言中比較一個數組中元素的大小
main() {int a[10],b[10],i,j=0,k=0,e=0; for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(i=0;i<10;i++) scanf("%d",&b[i]); printf("\n"); for(i=0;i<10;i++) {if(a[i]>b[i]) j++; else if(a[i]b %d times\na
#include
int main(){
int numbers[10] = { 10,2,3,4,5,6,9,8,7,1 };
int a,b, text, hello;
for(a=0; a<10-1; a=a+1) { //在這里進行比較的開始的代碼
hello = 1; //假如剩下的元素已經被排序好了,然後接著進行下面的比較
for(b=0; b<10-1-i; b=b+1){
if(numbers[b] > numbers[b+1]){
text= numbers[b];
numbers[b] = numbers[b+1];
numbers[b+1] = text;
hello= 0;
}
}
if(hello) break;
}
for(a=0; a<10; a=a+1){
printf("%d ", numbers[a]);
}
printf("\n");
return 0;
}
(7)c語言計算數組大小擴展閱讀:
C語言中數組元素大小的相關排序規則:
一、首先需要對數組中的元素進行排列,默認是以字元串的規則進行從小到大排序;可接收一個參數:自定義的規則相關排序。參數的具體要求如下:
1、參數首先必須是一個函數;
2、函數必須有一個明確的返回值;
3、返回值必須是number類型,但不可以是NaN。
二、排序中的具體規則:
1、首先每次從數組中挑選出兩個元素傳入函數中,進行比較,直到所有進行排列的元素都被挑選完畢以後就不要再進行挑選;
2、如果返回值是一個正數,就交換這彼此的位置,實現大小的正確排列;
3、如果返回值是一個負數或0,此時說明大小位置的順序是正確的,此時就不需要交換彼此的位置。
4、默認同一字元的全形字元看做半形字元。不區分同一個字元(如日文的片假字)的半形與全形狀態。相同元素,維持原序,默認區分字母大小寫,同一個字元小寫在前,大寫在後。
注意:對數組的元素進行排序需要不斷比較兩個數字的大小,10個元素排序一共需要比較9次,直到所有的元素被都完完全全地被比較一次。
Ⅷ C語言中計算數組長度的方法是什麼
用 sizeof 可以獲得數據類型或變數在內存中所佔的位元組數。同樣,用 sizeof 也可以獲得整個數組在內存中所佔的位元組數。因為數組中每個元素的類型都是一樣的,在內存中所佔的位元組數都是相同的,所以總的位元組數除以一個元素所佔的位元組數就是數組的長度。
比較特別的是,比特右移(>>)運算符可以是算術(左端補最高有效位)或是邏輯(左端補0)位移。例如,將11100011右移3比特,算術右移後成為11111100,邏輯右移則為00011100。
運算符的優先順序從高到低大致是:單目運算符、算術運算符、關系運算符、邏輯運算符、條件運算符、賦值運算符(=)和逗號運算符。
C語言特點:
其一,廣泛性。C語言的運算范圍的大小直接決定了其優劣性。C語言中包含了34種運算符,因此運算范圍要超出許多其它語言,此外其運算結果的表達形式也十分豐富。
其二,簡潔性。9類控制語句和32個關鍵字是C語言所具有的基礎特性,使得其在計算機應用程序編寫中具有廣泛的適用性,不僅可以適用廣大編程人員的操作,提高其工作效率,同時還能夠支持高級編程,避免了語言切換的繁瑣。
Ⅸ C語言中怎麼求動態數組大小
可以這么求: sizeof(array)/sizeof(類型),其中sizeof()中參數為數組的名字,這個函數可以求出整個數組的空間大小;sizeof(類型)參數中是數組中存儲的數據的類型,例如存儲int型,就sizeof(int),這樣就求出了一個元素的大小;用數組總的空間大小除以一個元素空間大小,就等於元素的個數,也就是數組的大小了!
Ⅹ c語言求數組長度strlen
strlen 用於計算字元串的長度。
數組長度,應是指數組大小,可存放幾個數組元素。
下面例子 計算 float 數組a, char 數組s 的 數組長度,計算s 里字元串長度。
(sizeof 用來計算 變數 和 類型 占內存的大小,單位是位元組。)
#include <stdio.h>
int main(){
float a[5];
char s[20]="abc123";
int nf,ns,ms;
nf = sizeof(a)/sizeof(float);
ns = sizeof(s)/sizeof(char);
ms = strlen(s);
printf("number of element in a is %d\n", nf);
printf("number of element in s is %d\n", ns);
printf("s string length is %d\n",ms);
return 0;
}
輸出:
number of element in a is 5
number of element in s is 20
s string length is 6