Ⅰ c語言如何計算一維數組個數
以上代碼中sizeof(a)的結果是40,而sizeof(int)的結果是4,len就是10,即數組a所佔int型的個數;
你可以進行循環判斷,當a[i]至a[9]都為0時,有效數值的個數為i
Ⅱ C語言問題 若有說明int a[][4]={1,2,3,4,5,6,7,8,9};,則數組a第一維
若有說明int a[][4]={1,2,3,4,5,6,7,8,9};則數組a第一維是3。
定義數組並賦值時C語言規定下標是這樣的,a[n]中的n個元素應該是a[0]....a[n-1]。。
因此int a[][4]的寫法就是表示,第一維大小沒限制,但是第二維數組大小就是4,也就是int a[][4]={{1,2,3,4},{5,6,7,8},{9,10}},明顯是3。
分析:二維數組的一維大小,即指二維數組的行數,在本題中,按行對二維數組賦值,因此內層有幾個大括弧,數組就有幾行。
(2)c語言中數組第一維怎麼求擴展閱讀:
在C語言中, 數組屬於構造數據類型。一個數組可以分解為多個數組元素,這些數組元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分為數值數組、字元數組、指針數組、結構數組等各種類別。
一個數組中的所有元素具有相同的數據類型(在C、C++、Java、pascal中都這樣。但也並非所有涉及數組的地方都這樣,比如在Visual Foxpro中的數組就並沒這樣的要求)。
當數據類型為 Variant 時,各個元素能夠包含不同種類的數據(對象、字元串、數值等等)。可以聲明任何基本數據類型的數組,包括用戶自定義類型和對象變數。
Ⅲ 數組第一維大小指什麼
C語言中第一維大小是指數組第一維的長度:
如下定義一個一維數組:
int arr[10];
則其長度可以使用sizeof(arr)來求得:
printf("長度:%d",sizeof(arr));
其結果為:10
二維數組的第一維大小是指數組的行數,第二維是數組的列數:
定義一個二維數組:
int arr[5][8];
則其行數為5,列數為8,其第一維大小就為5。
特點
1.數組是相同數據類型的元素的集合。
2.數組中的各元素的存儲是有先後順序的,它們在內存中按照這個先後順序連續存放在一起。
3.數組元素用整個數組的名字和它自己在數組中的順序位置來表示。例如,a[0]表示名字為a的數組中的第一個元素,a[1]代表數組a的第二個元素,以此類推。
Ⅳ C語言中二維數組的第一維長度是什麼意思
二維數組,也就是一組數據,有兩個維度行和列。比如
int
a[M][N];
定義了一個M行N列的數組,總元素個數為M*N。
其第一維長度,也就是總的行數,在C語言中,就是定義中的M。
類似的,第二維長度,也就是每行元素個數。在C語言中就是定義中的N。
Ⅳ C語言二維數組的第一維怎麼求
這個定義代表每一維有三個數,所以a[0]中存放的是1.2.3.;a[1]中存放的是4.5.6;a[2]中存放的是7.8.0。應該是這樣。你要問大小,是不是占的存儲空間啊?那第一維是三個位元組!
Ⅵ c語言求助!知道數組首地址怎麼求出數組元素地址
單維數組名就是首地址,多維數組名就是第1維的首地址,因此取首地址,可以把數組名賦給對應的指針變數,或取索引為0的首個元素地址賦給對應的指針變數。舉例:
單維 int arr[10]; int * p =arr; 或 int * p =&arr[0];
二維 int arr[10][10]; int (*p)[10] =arr; 或int (*p)[10] = &arr[0];// 取第一維地址
int arr[10][10]; int * p= & arr[0][0]; // 取多維中的首個元素
Ⅶ c語言中a[][2]省略的第一維數值是什麼
a[][2] 第一維數值 取決於 初始化 里的數據個數,[若不初始化則會出錯 (unknown size 錯)]。
第一維數值等於 sizeof(a) / 2 / sizeof(數組類型)
例如:
int a[][2]={1,2,3,4,5,6,7};
第一維數值: n=sizeof(a)/2/sizeof(int);
程序例子:
#include <stdio.h>
int main ( )
{
int a[][2]={1,2,3,4,5,6,7}; //2 col
int n,i,j;
n=sizeof(a)/2/sizeof(int);
printf("row = %d\nData:\n",n);
for (i=0;i<n;i++){
for (j=0;j<2;j++) printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
輸出:
row = 4
Data:
1 2
3 4
5 6
7 0
Ⅷ C語言中第一維數組的大小的准確定義
ANSI C89標准中規定,一個數組的尺寸(下標)必須是一個整型常量表達式以便於在編譯時計算大小,而這里的所謂常量(或者常量表達式的運算結果),一般是指unsigned int。
16位編譯器(比如Turbo C)中,unsigned int為16位,因此數組最多32767個數據。
32位編譯器(比如Visual C++ 6.0)中,unsigned int為32位,因此數組最多4294967295個數據。
以上結論為理論值。
實際上,在VC++中,我們定義一個259025元素的整型數組,雖然可以編譯通過,但是我們仍將得到一個運行時錯誤(runtime error)。這主要跟堆和棧的大小有關,詳細情況請查閱操作系統相關資料。
錯誤代碼範例:
// VC++ 6.0 中
void main()
{
int a[259025]; // 運行時錯誤,259024是ok的。
char b[259025]; // ok。
char c[1036097]; // 運行時錯誤,1036096是ok的。
}
// TC2.0 中
void main()
{
int a[32768]; // 編譯錯誤,32767是ok的。
char b[65536]; // 編譯錯誤,65535是ok的。
}
Ⅸ 什麼是數組a第一維的大小
數組a第一維的大小為3。
二維數組類型說明的一般形式是:
類型說明符數組名[常量表達式1][常量表達式2]…;
其中常量表達式1表示第一維下標的長度,常量表達式2 表示第二維下標的長度。例如:
int a[3][4]; 說明了一個三行四列的數組,數組名為a,其下標變數的類型為整型。該數組的下標變數共有3×4個,即:
a[0][0],a[0][1],a[0][2],a[0][3]
a[1][0],a[1][1],a[1][2],a[1][3]
a[2][0],a[2][1],a[2][2],a[2][3]
(9)c語言中數組第一維怎麼求擴展閱讀:
二維數組在概念上是二維的,即是說其下標在兩個方向上變化, 下標變數在數組中的位置也處於一個平面之中, 而不是象一維數組只是一個向量。但是,實際的硬體存儲器卻是連續編址的, 也就是說存儲器單元是按一維線性排列的。
如何在一維存儲器中存放二維數組,可有兩種方式:一種是按行排列, 即放完一行之後順次放入第二行。另一種是按列排列, 即放完一列之後再順次放入第二列。
在C語言中,二維數組是按行排列的。在如上中,按行順次存放,先存放a[0]行,再存放a[1]行,最後存放a[2]行。每行中有四個元素也是依次存放。由於數組a說明為
int類型,該類型占兩個位元組的內存空間,所以每個元素均佔有兩個位元組。
網路-數組