2013-09-16 49 views
-2

數組是c中的數據類型嗎? 如果可以,我們可以在結構體中創建數組類型的變量,enum。數據類型混合在c中

int arr[10] ;//is this arr is a data type of 10 ints 
+0

http://www.cprogramming.com/tutorial/c/lesson8.html –

回答

0

數組是一個derived type,如果我們看一下C99 draft standard部分6.2.5類型款說(重點煤礦):

任何衍生類型可以從對象,函數和 完整的類型,如下所示:

- 數組類型描述了一種連續地分配非空的對象集與 特定成員對象類型,稱爲元件type.36)數組類型爲 特徵在於它們的元素類型以及數組中的元素的數量。一個 數組類型據說是從它的元素類型派生出來的,如果它的元素類型是T,那麼 數組類型有時被稱爲''T''數組。數組類型從 構造一個元素類型被稱爲''數組類型派生''。

可以創建結構和枚舉的陣列中,唯一的例外是在腳註注意到:

由於對象類型不包括不完全類型,不完全型的陣列不能建。

1

是陣列在C語言的數據類型?

「陣列」,沒有進一步的規範不是一個單獨的數據類型,但一旦你指定它的大小和它的元件的類型,它成爲一個數據類型。換句話說,你不能定義一個需要「任何數組的數組」或「沒有特定大小的特定類型的數組」的類型,但是你可以定義一個N類型的數組的數據類型T

如果是的話,我們可以創建數組類型的變量在struct S,enum

int arr[10] ;//is this arr is a data type of 10 ints 

是的,它是。您可以通過檢查sizeof(arr)來判斷:這將是sizeof(int)的十倍。

+0

「數組」不是數據類型; 「int int數組」和「size 10 ints數組」是數據類型。 – mpez0

+0

@ mpez0編輯。謝謝! – dasblinkenlight

0

當然,數據類型的數組是另一種數據類型。

你可以這樣做:

typedef int intarr3_t[3]; 

intarr3_t intarr = {1, 2, 3}; 
0

是的,它是一種數據類型,是的,你可以使他們的數量。

爲了使它更清晰,你可以做一個數組的typedef。

typedef char MyType_t [10]; 

將使MyType_t的10個字符的數組:

MyType arrayOfTenChars; 
+1

在MyType_t中,是下劃線t是必不可少的。 – mrigendra

+0

不,實際上它應該只保留用於圖書館類型,這只是我已經做了20年的方式。 – Neil

0

陣列的構思涉及一種派生類型。然後有數據類型,例如array of intarray of 10 ints