陣列的「面具」

2021-08-10 05:12:31 字數 956 閱讀 8640

在談到陣列時, 我們總是將他們與指標混在一起。下面,我將談談陣列的一些偽裝。

1:陣列名總共在四個地方表現的不同。

一:在 sizeof(陣列名)這個時候陣列名代表的是整個陣列的長度,即也就是總元素乘以每個元素佔的空間大小。

二:在引用的狀態下,int (&br)[10]=陣列名,這是陣列名也是代表了整個長度。

三:在陣列名當形參的時候,他就退化成了乙個指標。

2:一維陣列和二維陣列的區別

其實 二維陣列可以看成是一維陣列組成的。只是他的「元素」發生了變化,一維陣列裡面的陣列名代表的元素就是陣列首元素的位址,而二維陣列的陣列名的元素代表的是乙個指向一維陣列的位址。怎麼理解那?

比如:#include

int main()

;int *p=&a;

int s1[2][3]=;

int (*p1)[2][3]=&s1;

int (*p2)[3]=s1;

int (*p3)[3]=&s1[0];

int *p4=s1[0];

return 0;

}           

當p+1是內容就是2,而當p2+1時指的就是s1[1][0],他直接加了乙個一維陣列的長度。

那在一維陣列裡面怎麼可以取到像二維陣列一樣的指向乙個一維陣列的位址那,那就需要用到&符了。

例如上面的p指向的就是一維陣列 的指向,大家可以直接上級試試。

說到二維陣列與一維陣列的關係,下面我們就來推到推倒。

假設在記憶體有一段的連續的位址,分別存放了二個一維陣列a0,a1。每個陣列分別包含三個資料,我們定義乙個指向一維陣列的指標。即 int (*s)[3]=a0;如果我們要去找a1裡面的第三個數。就可以這樣求。 *(*(s+1)+3)我們知道下標和指標的關係,把此式改寫成指標的形式。s[1][3],這不就是二維陣列嗎?

由此可以看出,二維陣列就是由一維陣列組成的。只是他們作為陣列名時代替的元素不同而已。

程英的面具

在 神鵰俠侶 中,遇見楊過的女人都有愛上他的可能,所幸這個萬人迷沒有到處留情,最後選擇跟鍾愛的人一起歸隱,把自己的英俊瀟灑只留給乙個人欣賞,情操很高尚啊 這樣的人不免招惹一堆蝴蝶乃至蒼蠅。縱觀所有暗戀他的女人們,唯一乙個讓我覺得又妒又敬的,便是程英。我總覺得金庸對程英很偏愛,好性情,好容貌,碧海潮生...

9檢視介面 具體

b 1檢視別名 b 檢視別名以及過濾器和路由資訊如get cat aliases?v 如果希望知道某個別名資訊可以使用 cat aliases alias1 b 2分配 b 檢視集群或者某個索引的文件數量 get cat count?v get cat count twitter?v b 3文件數量...

OCR API介面具體有哪些

ocr技術廣泛的在各種場景中使用,為方便不同業務場景呼叫,ocr技術以介面的方式整合到各類應用系統中。ocr api介面種類有很多,如ocr名片識別api介面 ocr文件識別api介面 ocr證件識別api介面 ocr車牌識別api介面 ocr發票識別api介面等等。ocr識別技術應用廣泛主要是因為...