我有Java背景,正在學習C 。我有一個語言實作/語法決定的問題。
在Java中,陣列宣告是這樣的:
//generally
type[] variableName。
//具體
int[] intArray;
然而,在C 中,它看起來是這樣的:
//generally
type variableName[size]。
//具體
int intArray[5] 。
Java版本對我來說是有意義的,括號里應該附加資料型別。這個變數不是一個int,它是一個int陣列,所以我們用int[]替換int。
在C 中,為什么要在變數名后面加上括號呢?
(此外,當涉及到指標時,C 似乎也同意這一點。一個int指標是int* intPtr而不是int ptr*。我錯過了什么?)
uj5u.com熱心網友回復:
這是一個來自c的遺留專案,它以同樣的方式宣告。我認為這可能只是在c剛創建時的做法。在現代C 中,我們可以避免使用靜態陣列或指標。你的例子可以寫成:
std::array<int, 5> intArray;
這既是更多的描述,也增加了很多好處。參見這里以了解更多細節。
uj5u.com熱心網友回復:
一個int指標是int* intPtr而不是int ptr*
。
注意,int* ptr和int *ptr是一樣的。此外,
int* ptr, i。
這宣告了"整數指標ptr",以及"整數i"。
在C語言中,指標和陣列是非常相似的,有時甚至可以互換。你可以這樣寫,例如:
int a[SIZE], *b;
b = a。
b = 記憶體分配...
b[0] = 123。
該語言的目的是非常簡單和靈活(而且非常容易把事情搞砸)
在C 中,如果可以的話,你就應該遠離這種情況。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/322443.html
標籤:
上一篇:如何將陣列轉換為不同的型別
下一篇:在物件的陣列中搜索元素
