c 陣列定義為什麼會這樣?

時間 2021-05-31 10:15:44

1樓:wzf2000

初始化問題不說了,前面的答主說的夠了。

至於為什麼會TLE,可以想想輸入的不足四位數會怎樣。結合前面答主所說就可明白。

至於那位說會CE的答主,可能不知道在MinGW或類似編譯環境下std::string確實是可以直接呼叫的,一般OJ也不太可能使用MSVC做編譯環境。換句話說,不同編譯環境帶來影響有時不可忽視,當然還是建議加上#include 。

2樓:Jason於航

具有自動變數屬性的陣列變數,C++ 會對其中的每乙個元素進行預設初始化。由於這裡的陣列元素是基本 C++ 型別(int),因此:

... otherwise, nothing is done: the objects with automatic storage duration (and their subobjects) are initialized to indeterminate values.

即:陣列中的元素會被初始化為不確定值

詳細規則可以參考這裡

3樓:Welt

C/C++有規定, 如果只定義陣列而不初始化,那麼陣列中的值是隨機的(據我觀察0的概率很大);而如果不完全初始化陣列(就是你寫的賦初值),規定陣列後面的項都是0:

輸出:若只給前兩個賦值:輸出:

c 指標的定義為什麼是這樣?

int a 100,p a 或者其實是在問為什麼不自動推導p的型別?那也是可以的 auto a 100 auto p a 如果沒理解錯樓主的意思的話,樓主是感覺號就應該表達同乙個意思。但實際上不是,號在變數宣告裡表示指標,在指標變數前面表示取指標所指向的值。類似的情況在C 裡還有很多。你p不需要定義...

C語言指標 二維陣列,為啥會這樣?

沒明白你不理解的點在哪,我猜是單純糾結於為什麼要寫成0 COLS 0而不直接寫0。答案是直接寫0也可以,其實是為了統一下格式,就是乘號,結果上和直接寫0沒區別。int a 0 COLS 0 int a 1 COLS 2 int a 3 COLS 2 統一成這種格式而已。沒啥講究的,還是 指標 破數字...

這裡沒有定義陣列指標,為什麼會出現陣列,只是僅僅定義乙個指標而已,為什麼可以當陣列用?

作為業餘愛好者,我來解釋一下。int a 3 4 表明,a是乙個二維陣列的首位址,並且,a 包含了3個int 型陣列,a 0 a 1 a 2 每個陣列的長度為4。後面的 a 0 0 是第1個元素的位址,也就是陣列 a 0 的首位址,這個陣列長度為4。因此,p 相當於乙個,長度為4 的int 型陣列。...