[C/C++] 如何計算陣列大小/個數
Feb 3rd, 2008 by appleboy 參觀者:792Views 機器人:295Views
最近在寫 BCB 的時候遇到的,不過忘記之前怎麼寫的,所以又上去找了一下,發現可以利用 sizeof 這個函式,來計算陣列的個數,我去查了一下 BCB 的 manual,裡面寫的還蠻詳細的,如下
Example for sizeof operator
/* USE THE sizeof OPERATOR TO GET SIZES OF DIFFERENT DATA TYPES. */
#include <stdio.h>
struct st {
char *name;
int age;
double height;
};
struct st St_Array[]= { /* AN ARRAY OF structs */
{ "Jr.", 4, 34.20 }, /* St_Array[0] */
{ "Suzie", 23, 69.75 }, /* St_Array[1] */
};
int main()
{
long double LD_Array[] = { 1.3, 501.09, 0.0007, 90.1, 17.08 };
printf("\nNumber of elements in LD_Array = %d",
sizeof(LD_Array) / sizeof(LD_Array[0]));
/**** THE NUMBER OF ELEMENTS IN THE St_Array. ****/
printf("\nSt_Array has %d elements",
sizeof(St_Array)/sizeof(St_Array[0]));
/**** THE NUMBER OF BYTES IN EACH St_Array ELEMENT. ****/
printf("\nSt_Array[0] = %d", sizeof(St_Array[0]));
/**** THE TOTAL NUMBER OF BYTES IN St_Array. ****/
printf("\nSt_Array=%d", sizeof(St_Array));
return 0;
}
struct st {
char *name;
int age;
double height;
};
struct st St_Array[]= { /* AN ARRAY OF structs */
{ "Jr.", 4, 34.20 }, /* St_Array[0] */
{ "Suzie", 23, 69.75 }, /* St_Array[1] */
};
int main()
{
long double LD_Array[] = { 1.3, 501.09, 0.0007, 90.1, 17.08 };
printf("\nNumber of elements in LD_Array = %d",
sizeof(LD_Array) / sizeof(LD_Array[0]));
/**** THE NUMBER OF ELEMENTS IN THE St_Array. ****/
printf("\nSt_Array has %d elements",
sizeof(St_Array)/sizeof(St_Array[0]));
/**** THE NUMBER OF BYTES IN EACH St_Array ELEMENT. ****/
printf("\nSt_Array[0] = %d", sizeof(St_Array[0]));
/**** THE TOTAL NUMBER OF BYTES IN St_Array. ****/
printf("\nSt_Array=%d", sizeof(St_Array));
return 0;
}
Output
Number of elements in LD_Array = 5
St_Array has 2 elements
St_Array[0] = 16
St_Array= 32
隨機主題
