c語言陣列可以儲存不同型別資料嗎?

時間 2021-05-31 22:37:07

1樓:乙隻樹

不可以,陣列的元素必須時同一種型別,因為記憶體的分配是按照:單個元素所佔記憶體*元素個數分配的。當然,你的陣列元素可以是不同型別成員組成的乙個結構體型別。

2樓:

在c++裡可以做到,比如std::variantauto

printer=(

auto

&&value

)else

ifconstexpr

(std

::is_same_v

,double

>)else

};using

variant_type

=std

::variant

,double

,std

::string

>;std

::vector

>vec=

;for

(auto&&v

:vec)

3樓:

不可以。即使使用union/struct,那也只能說union/struct可以儲存不同型別的資料,陣列儲存的仍然是同一型別的union/struct。

4樓:Xi Yang

鑑於動態型別的指令碼語言(幾乎)都是c或者c++寫的,那麼顯然可以。

基本思路就是弄個union或者結構體,再弄個flag表示現在是什麼型別的值。

5樓:布束

陣列內預設每個元素具有同樣的長度。而同長度的東西一般具有同樣的資料型別(比如你可以在byte裡面存char)。

當然你可以用struct實現乙個能儲存不同型別和長度元素的東西並且同樣有頭指標,不過這就不叫陣列了233

C語言不同資料型別計算時轉換問題?

薛非 1.m a b 的計算過程中,是將a和b分別轉換為int型,還是將a b的結果轉換為int型?作為右值,所有短於int型別的資料都會被隱式地轉換為int或unsigned 所以m a b 本質上表達的是 m int a int b 這叫整數提公升 integer promotions 2.a ...

C 語言中不同型別指標的大小是否完全相同,為什麼?

辰落火輝裂開了 ISO IEC 9899 202x N2596 Working draft 6.3.2.3 A pointer tovoidmay be converted to or from a pointer to any object type.A pointer to any object...

c語言實現能否儲存資料?

我來補充一點吧。很多回答說到了檔案讀寫,這是對的,但是乙個應用程式儲存資料到硬碟也有主流的三種方式 1,使用自己設計的檔案格式,就比如說樓上有些回答直接把乙個變數的值寫進檔案,下次開啟程式直接讀檔案來得知上次執行的結果。2,使用 XML,JSON,INI 等檔案格式。其實這些檔案格式說到底還是純文字...