程式設計大牛是如何處理陣列中元素的位置的?

時間 2021-08-12 20:22:05

1樓:

可以認為前面已經有的元素個數。如下標是0,則是第乙個元素,其前面有0個元素,即沒有元素,所以是第乙個元素,即我們說的第乙個元素的下標是0。下標是1,前面已經有下標是0的乙個元素,下標是n,說明前面有從下標0到n-1這n個元素了,這樣便於計算下標是n的元素的起始位址,因為前面已經有n個元素了,所以對於 int a[8]來說,a[5]這個元素前面已經有5個元素了,所以陣列元素a[5]的起始位址是(char *)a+sizeof(int)*5便於計算元素的起始位址,知道元素的起始位址及元素的型別(也就知道了元素所占有的位元組數)就可以取出元素的值。

2樓:翟召軒

1.方便比如用求組模擬迴圈佇列等演算法。因為取餘運算中,整除的話餘0,不需要再產生一條加法指令直接可以拿餘數定址

2.C對指標處理的問題。c語言編譯時,對指標變數和陣列名處理是類似的。

比如:char s[5], *p = s;

在這裡s + 3 == p + 3, *(s + 3) == p[3], &s[3] == p + 3

並且陣列下標問題在函式間引數傳遞時尤為明顯。我們假設陣列下標從1開始,我賦值s[1] = 0.然後將s傳遞給strlen函式,由於strlen不知道求組長度,形參肯定要定義成指標型別(假設為p),那strlen如果要通過指標操作取你給的陣列第一項要寫成*p,也就是*(p + 0)。

結果一邊是1一邊是0造成混亂。

3.丹尼斯:我就這麼定義的,不服咋滴?!

電鍍廢水是如何處理的?

孜孜不倦防水人 華中表面處理迴圈經濟產業園設立電鍍廢水處理集中區,日均廢水處理能力27000噸 天,擁有國內首家地下綜合管廊,管道連線園區各個廢水區。電鍍廢水處理按鍍種工藝來分,鍍種不同廢水處理工藝不同,從鍍槽的高濃度廢液裡不斷分離解析,最終達標排放。電鍍廢水處理一定是集中處理的,這是電鍍行業發展的...

Unix時間戳是如何處理閏秒的?

仲晨 The Unix time number is zero at the Unix epoch,and increases by exactly 86400 per day since the epoch.正閏秒時,閏秒的unix time就跟後一秒相同 負閏秒時,unix time就會跳過閏秒...

夏天這麼熱,考研的你們是如何處理的?

惠利喵呀 白天空調房裡聽課看書,一日三餐營養得跟上啊,傍晚後去騎車跑步散步都行適當運動出出汗,然後回來洗個澡繼續看書,睡不著喝杯牛奶進入甜蜜夢鄉 愛兮夢兮 出了忍沒別的辦法了。宿舍有空調但是學不下,只能去圖書館,然而圖書館裡沒空調。你能理解偌大的圖書館就只能依賴風扇的絕望嗎,風扇就在頭頂,可是根本感...