簡體   English   中英

數組下標運算符 ([ ]) 對數組有什么作用?

[英]What does the array subscripting operator ([ ]) do to an array?

我想知道數組下標運算符( [] )對對象做了什么

這個問題這個問題中,我了解到[]運算符獲取 object 的地址,將括號之間的任何內容添加到 object 中,最后取消引用總和以獲得地址。 但是,在數組聲明中,例如。

int iarr[] = {1,2};
int iarr2[2] = {1,2};

[]運算符似乎沒有將括號中的值添加到操作數中,尤其是在第二個示例中。 相反,它似乎賦予了 object 存儲 arrays 的能力。

另外,我的猜測是int arr2[2] = {1,2}arr[2]將為兩個int分配 memory 。 真的嗎?

作為總結:

[]運算符在聲明期間對其操作數做了什么? 它只是讓 object 能夠存儲 arrays 還是為陣列分配了 memory?

[]僅在應用於表達式時才是運算符。
(同樣的原則適用於&* 。)

在聲明中,它是類型的一部分,除了指定聲明的變量是一個數組之外,它並沒有真正“做”任何事情。

您混淆了[]運算符和聲明數組的語法。

int iarr2[2] = {1,2};

正在聲明一個名為iarr2的 2 個整數的數組,然后將數組的元素初始化為 1 和 2。它沒有應用[]運算符。

這個:

int iarr[] = {1,2};

意味着定義一個數組,其大小將與初始化列表中的元素數量相匹配。

在另一方面:

 int iarr2[2] = {1,2};

方法定義一個二元素數組並將其初始化為12

你也可以這樣做:

 int iarr2[4] = {1,2};

方法定義一個四元素數組並將前兩個元素初始化為12 剩余元素初始化為: 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM