使用push過程中發現的小細節

2021-09-13 14:53:42 字數 493 閱讀 3046

相信大家平時開發的過程中,經常需要對陣列進行操作,說到對陣列的操作,push還是出場率很高的。

var obj = ;

var arr = ;

arr.push(obj)

arr.push(obj)

arr.push(obj)

arr.push(obj)

obj.name = 'liu'

在這裡,我們往乙個空陣列 arr 裡面新增了三個物件,然後將 obj 物件進行了改動,你們猜陣列的變化是怎麼樣的?有沒有收到其影響?

既然都這麼問了,想都不用想,肯定發生變化了唄,果然:

// 果然,控制返回的結果是:

[(4) [, , , ]

]

從這裡看出了, push 進去的物件,相當於等於號 '=' 的過程,對於物件,只是複製其指標位址,並不是真正意義上的複製,所以這裡多個物件其實是指向同乙個位址的。於是乎才產生這種情況。

從找實習的過程中發現了自己的弱點

在開始找實習的時候,我對自己特別自信,認為我的實力很強又有專案經驗,公司沒理由不要我,但是經過了ibm的失敗讓我認清了自己的實力,也發現了自己最大的弱點 做事太趨於表面,對任何問題的研究不夠深入。在11月中旬的時候我參加了ibm cics部門的電面,第一次電面的時候問的東西都是相對比較面上的東西,只...

C 使用過程中容易忽略的小細節

說明 此篇文獻是讀者在閱讀 c primer plus 中抓取的容易忽略的小知識點,如有不當之處,敬請指正。1 運算子sizeof 可對型別名和變數名使用sizeof運算子。對型別名如 如int 使用sizeof運算子時,應將名稱放到括號中 但是對於變數名 int a 中的a 使用該運算子時,括號時...

刷題中發現曾經的小誤區

利用指標將陣列作為形參傳入 以下以int為例 void change int p,int len 以形式來對陣列中的值進行修改 void change1 int p,int len test case int p 10 for int i 0 i 10 i p i i 分別呼叫change和chan...