黄梅戏五朵金花大联唱
地區(qū):希臘
  類型:電視劇片庫
  時(shí)間:2025-06-03 01:05:09
劇情簡(jiǎn)介
本文來自微公眾號(hào):低發(fā)編程 (ID:dibingfa),作者:閃客文標(biāo)題:《管這破玩意指針?》本列分三篇,破玩意的方徹底理解好針的本質(zhì):管這破玩意指針 -- 基礎(chǔ)篇你管破玩意叫指 -- 進(jìn)階篇你管這破意叫指針 -- 變態(tài)篇話不多說,開!內(nèi)存,通被嚴(yán)謹(jǐn)?shù)禺?下面這個(gè)樣,一個(gè)下方低地址上方高地址的格樓。但我今換種畫法,成下面這個(gè)子。每個(gè)格代表內(nèi)存中 1 個(gè)字節(jié)(8 位),格子上的數(shù)就代表內(nèi)存址,我也直用 10 進(jìn)制來表示了免得 16 進(jìn)制又算不白了。目前存是完全空,格子里沒任何內(nèi)容。想一下,如你忘掉所有語法規(guī)則和程規(guī)范,你如何描述對(duì)些內(nèi)存格子操作呢?一類型系統(tǒng)很單,往格子 3 處放個(gè)數(shù)字 29,往格子 6 處放個(gè)數(shù)字 38,就這么簡(jiǎn)單直接大暤描即可。但是樣說話太麻了,什么往子 3 處放個(gè)數(shù)字 29 的,廢話太多,也不方不講感情的算機(jī)去理解那我們就定指令,使用 mov $x, (y) 表示把數(shù)字 x 放入格子 y,如下:mov?,?(3)mov?,?(6)這就表示剛說的:把數(shù)?29?放入內(nèi)存格子?3把數(shù)字?38?放入內(nèi)存子?6是不是太簡(jiǎn)單了?急,好戲馬開始!如果把數(shù)字 999 放入內(nèi)存格子 8,該怎么辦呢?于 1 個(gè)格子表示 1 個(gè)字節(jié),只 8 位,因此只能表示 256 個(gè)數(shù)字,要么是符號(hào)的 -128 ~ 127,要么是無符號(hào)的 0 ~255,顯然數(shù)字 999 無法放在 1 個(gè)格子內(nèi),只能用 2 個(gè)格子了。那也辦,就這么,把數(shù)字 999 放入格子 8,連續(xù)占用兩個(gè)格。但這樣,們剛剛的 mov 指令就得改改了,但要表示 "存放" 這個(gè)含義,還得示占用了多個(gè)格子。我用 movb 表示只占 1 個(gè)字節(jié),用 movw 表示占用 2 個(gè)字節(jié)。那么,剛剛三個(gè)數(shù)字,分別可以這用指令來表了:movb?,?(3)movb?,?(6)movw?9,?(8)含義就是:數(shù)字?29?放入內(nèi)存格?3,占?1?字節(jié)把數(shù)?38?放入內(nèi)存格子?6,占?1?字節(jié)把數(shù)字?999?放入內(nèi)存格?高山8,占?2?個(gè)字節(jié)OK,既然有了 1 字節(jié)和 2 字節(jié)的的指令不妨再設(shè)計(jì),用 movl 表示 4 字節(jié),movq 表示 8 字節(jié) ...movb?占用?1?字節(jié)movw?占用?2?字節(jié)movl?占用?4?字節(jié)movq?占用?8?字節(jié)不知不,類型系統(tǒng)被你悄悄設(shè)出來了!當(dāng),雖然這只個(gè)半成品。、變量你不地往不同格里放數(shù)據(jù)。如我把我的齡放在 11 號(hào)格子(占 1 字節(jié)),把我的月放在 14 號(hào)格子(占 4 字節(jié))。現(xiàn)在我們的存已經(jīng)非常亂了,你根記不住原來 3 號(hào)格子放的數(shù)據(jù)表什么,11 號(hào)格子又表什么,只能過看數(shù)字知 14 號(hào)格子里放的確是我的月薪這該怎么辦?增加一層象嘛!我們這些放了我數(shù)據(jù)的格子都貼上個(gè)標(biāo),就可以不再記那些無義的格子編了。這樣以,其實(shí)我們不再關(guān)心,些標(biāo)簽到底哪個(gè)格子里只要給我找格子把我的據(jù)放進(jìn)去就以了。movb?,?amovb?,?bmovw?9,?cmovb?,?agemovl?47483647,?salary當(dāng)然,我還需要鐘山通這個(gè)標(biāo)簽,我剛剛放進(jìn)的數(shù)據(jù)找出。這很簡(jiǎn)單但存在一個(gè)題,放進(jìn)去時(shí)候,我們以通過 movb,movw,movl 等知道占用多少個(gè)盂山子而取出來的候,標(biāo)簽上沒有寫這個(gè)據(jù)占用了多個(gè)格子,這有問題的。此,在定義個(gè)標(biāo)簽時(shí),能光取個(gè)名,還需要有信息就是,個(gè)標(biāo)簽對(duì)應(yīng)數(shù)據(jù),占了少個(gè)格子。們就效仿剛的存放操作也規(guī)定一系單詞,來修這些標(biāo)簽,示占用了多個(gè)格子。char 表示 1 個(gè)字節(jié),short 表示 2 個(gè)字節(jié),int 表示 4 個(gè)字節(jié),long 表示 8 個(gè)字節(jié) ...于是乎剛剛的 5 個(gè)數(shù)據(jù),就以表示為如指令:char?a?=?29;char?b?=?38;short?c?=?999;char?age?=?18;int?salary?=?2147483647;行了,我也別藏著掖著,相信大家知道,這里是 C 語言的寫法,而剛那堆 mov 是匯編語言的寫法。些 char a,char b,int salary 等,就是變量!記,變量不但有名字,還有類型!三變量定義與值其實(shí),剛的寫法,是變量的定義賦值操作寫一行了。比有如下語句int?a?=?1;實(shí)際上是分成兩的://?變量的定義int?a;//?變量的賦(此處也可叫變量的初化)a?=?1;其中變量的定義是為方便程序員面去用它,部分不是給 CPU 看的。而變量的值才是真正內(nèi)存中把數(shù)放進(jìn)去,這分才真正涉 CPU 具體指令的執(zhí)。也就是說如果你僅僅義了一個(gè)變 int a; 但是沒有給它初始化賦值操作,么最終在 CPU 執(zhí)行指令的時(shí)候,個(gè)定義根本沒有任何體。四、指針在,讓我們內(nèi)存清空,到一開始的一片凈土上我們來搞點(diǎn)樣。我將我密碼(1234)存儲(chǔ)在一個(gè) short a 中,假設(shè)這個(gè)變 a 被放在了 6 號(hào)格子處。同時(shí)我將這個(gè)變 a 的地址,也就是 6 這個(gè)數(shù)字,存儲(chǔ)在另一變量 int p 中,假設(shè)這個(gè)變量 p 被放在了 1 號(hào)格子處。這樣,尋找我密碼方式,就是通過 p 所在的內(nèi)存地找到里面存值,也就是 a 的內(nèi)存地址 6,再通過 a 的內(nèi)存地址找到面存的值,就是我要找密碼 1234。我們可以用下面的代來表示剛剛存放邏輯。short?a?=?1234;//?假設(shè)?a?被放在了?6?號(hào)格子處int?p?=?6;這里的 p 和 a 都是變量,只過,p 這個(gè)變量有點(diǎn)特,它里面存的值是一個(gè)存地址,我把 p 這個(gè)變量形象地為指針變量簡(jiǎn)稱指針。過,這樣有個(gè)問題,我個(gè)個(gè)來說。1. 取地址首先,我猩猩在碼階段,無知道也無需道變量 a 會(huì)存放在哪,不然就失了標(biāo)簽的含,又回到了要關(guān)心具體內(nèi)存地址(就是格子編)的時(shí)代了所以,我們該有個(gè)方法來在編碼階表示變量 a 的地址的含義,姑且就做 &a 吧。那么我們代碼,就可優(yōu)化為:short?a?=?1234;//?假設(shè)?a?的地址是?6//?那么下面?p?就等于?6int?p?=?&a;用圖來表示是:2. 指針變量本身大小視角放這個(gè)變量 p 身上,雖然本質(zhì)盂山這個(gè)量 p 里面存放的就是個(gè)數(shù)值,假是 6,但是它卻表示了個(gè)內(nèi)存地址值。如果讓序員隨便規(guī)這個(gè)變量 p 的數(shù)據(jù)類型(也就是顓頊少個(gè)字節(jié))那顯然容易問題。比如存地址是 999,那么我用一個(gè) char 類型的變量 p 來存放它,就有問題。我在編碼階段無法確定一變量的內(nèi)存址是多少的所以用什么型的變量來放它,也是法判斷的。以,最穩(wěn)妥辦法就是,一個(gè)完全能納所有內(nèi)存址范圍的變類型來存放針變量。我姑且認(rèn)為我是在一個(gè) 32 位的系統(tǒng)上,那么用個(gè) 4 字節(jié)大小的變量存放,就可了。(當(dāng)然實(shí)際上這取于你的編譯的位數(shù))現(xiàn),我們的指變量所占用內(nèi)存大小,是固定的 4 個(gè)字節(jié),也就是 4 個(gè)格子。程序無需也無法改這個(gè)大小那么我們就以把 p 前面的數(shù)據(jù)類去掉了。short?a?=?1234;p?=?&a;3. 指針變量的類剛剛我們解了指針變量身所占用的存大小,但還有一個(gè)問沒有解決,是指針變量存放的內(nèi)存址處的變量大小。也就說,上面的針變量 p 里雖然存放變量 a 的內(nèi)存地址 6,但是指針量 p 卻沒有任何信息來說明內(nèi)存址 6 處的變量,它的小是多少。如,我們認(rèn)內(nèi)存地址 6 處的變量是個(gè) char 類型,也就是只占用了個(gè)字節(jié),那顯然,會(huì)取一個(gè)不符合期的值。當(dāng),如果認(rèn)為 6 處的變量是個(gè) int 類型,占 4 個(gè)字節(jié),雖然數(shù)值上能沒有問題但從某種程上講也是不符合預(yù)期的假如 8 號(hào)和 9 號(hào)格子里有其他容,那就更符合預(yù)期了。所以,必得完全按照量本身的類,也就是 short 類型來讀取此存地址處的,才是正確。那我們應(yīng)如何表示這信息呢?即何表示,變 p 是一個(gè)指針,且這指針里面存的內(nèi)存地址的變量的類是 short。很好辦,直接楮山答案。short?a?=?1234;short?*?p?=?&a;p 前面的 * 表示變量 p 是一個(gè)指針類型再前面的 short 表示該指針指的內(nèi)存地址的變量,是 short 類型的變量。當(dāng)然,更確的說法是指針 p 將會(huì)按照 short 類型的變量來讀它指向的內(nèi),至于那里底是什么,所謂。注意,這個(gè) short 并不是表示指針量本身的大占 2 個(gè)字節(jié),指針變本身我們前說過了,就固定的 4 字節(jié)大小。過總是這樣太繞口了,后我們就說變量 p 是個(gè) short * 類型的指針,就以了。用上的圖形象地就是,右邊量 a 藍(lán)色的填充,表 a 是個(gè) short 類型,而外的虛線框框表示指針 p 按照 short 類型的變量來 "解讀" 內(nèi)存地址 6 處的數(shù)值。兩相匹配了,是 "正確" 的編程代碼了。當(dāng)然,里的 "正確",是說給程序員蔿國的,CPU 才不關(guān)心。4. 指針?biāo)赶虻?上面我們已可以獲得某變量的地址比如獲取 a 的地址就是:&a同時(shí)我們也可以定一個(gè)指針變,比如定義個(gè) short * 類型的指針變量 p:short?*?p;并且,我們過直接賦值作,可以給針變量進(jìn)行始化:p?=?&a;當(dāng)然,上面的代也可以連起寫,即指針量 p 的定義與初始化在同一行:short?*?p?=?&a;不過,我們還沒有一方法,來表指針變量 p 所指向的那塊內(nèi)存。那們就發(fā)明一,比如想把 p 所指向的那塊內(nèi)存的改為 999,可以這樣。*p?=?999;這里的 * 就表示 "指向" 的含義,即 *p 不是說 p 這個(gè)變量的內(nèi)存址,而是把 p 這個(gè)變量里存的內(nèi)容做內(nèi)存地址看,指向這內(nèi)存地址。圖表示就是所以連起來個(gè)完整的程就是:short?a?=?1234;//?指針的定義short?*?p;//?指針的初始化,也指針變量本的值p?=?&a;//?指針變量所向的內(nèi)存地的值*p?=?999;執(zhí)行過后,a 的值會(huì)變成 999,或者說 6 號(hào)格子與 7 號(hào)格子里的值變成 999。5. 指針的加減如果一個(gè)普通變 +1,比如說:int?a?=?1;int?b?=?a?+?1;那顯然,b 的值應(yīng)該是 2,毫無疑問。但是果對(duì)一個(gè)指變量 +1,會(huì)怎么樣呢int?a?=?1;int?*p?=?&a;int?*p2?=?p?+?1;我們假設(shè)變量 a 放在了格子 1 處。變量 a 的值是什么,以及變 p 被放在了哪里,我都不關(guān)心,只盯著 p 的值看,顯,一開始的候是 1。(為方便演示下面的圖直表示 p 所指向的內(nèi)存址,而不是 p 本身所在的內(nèi)存地鸓我們先不考,p + 1 應(yīng)該是幾,如果讓你強(qiáng)良計(jì)這個(gè)語言你覺得 p + 1 是幾比較好呢?認(rèn)為,只有種較為合理設(shè)計(jì)。第一,p + 1 就等于 2,就簡(jiǎn)簡(jiǎn)單當(dāng)做數(shù)值進(jìn)加法運(yùn)算而。第二種,p + 1 等于 5,即跨過一個(gè) p 所指向的內(nèi)單元的數(shù)據(jù)型的大小,就是 4 字節(jié)的 int。你覺得那比較合理呢那顯然是第種嘛!不然普通變量有區(qū)別了,你然設(shè)計(jì)出了針變量這個(gè)意,就需要它發(fā)揮點(diǎn)方程序員的作,這才是你計(jì)它的真正的。當(dāng)然你服,你就想這個(gè) int * 類型的指針變量,真真正正在值上只 +1,也就是讓 p 等于 2,該怎么辦?很簡(jiǎn)單,成三步就好:第一步, int * 類型的 p 強(qiáng)轉(zhuǎn)為 char * 類型的 p。第二步,p + 1。第三步,再把 char * 類型的 p 強(qiáng)轉(zhuǎn)為 int * 類型。完事!用碼表示就是p?=?(int?*)((char?*)p?+?1);你會(huì)看到,C 語言項(xiàng)目中經(jīng)常用這樣的玩。當(dāng)然,你一頓花里胡的操作,在 CPU 眼里,就是對(duì)一內(nèi)存地址處值簡(jiǎn)簡(jiǎn)單單 +1 而已。五、指針本質(zhì)我們看面的一張圖其實(shí),別看面又 short * p 又 short a 的,這是給程員和編譯器的。在 CPU 眼里,根本沒有這些花繚亂的標(biāo),以及五花門的解讀,是 0 ~ 4 號(hào)格子里存了個(gè)數(shù)羆 6,然后 6 ~ 7 號(hào)格子里存了數(shù)字 1234,僅此而已。更進(jìn)一解說,其實(shí)就只 1 號(hào)格子里存儲(chǔ)了數(shù) 6(234 號(hào)格子是空的),6 號(hào)格子里存儲(chǔ)數(shù)字 12,7 號(hào)格子里存儲(chǔ)了數(shù)字 34。(當(dāng)然實(shí)際得轉(zhuǎn)??二進(jìn)制,再合大端序還小端序來看,我這里就簡(jiǎn)單直觀告大家 CPU 才不管那么多,就一獜子一個(gè)格子放數(shù)字就完了)所以,們經(jīng)常聽書講,讓大家定要記住,針變量中只存放地址,要將一個(gè)整或任何其他地址類型的據(jù)賦給一個(gè)針變量了。種說法就非別扭,很多上,即想講楚指針的本,又想講清指針的注意項(xiàng),混雜在起,讓讀者沒有搞清楚針的本質(zhì),不知道指針注意事項(xiàng)。糾結(jié)!說實(shí),就光看書沒有經(jīng)過大 C 語言的實(shí)踐,誰狂山得住或者理透徹那些注事項(xiàng)。而經(jīng)大量 C 語言實(shí)踐的人指針早就融進(jìn)血液中了誰還來看你指針的本質(zhì)所以說,這我覺得非常矛盾。實(shí)際,指針變量本質(zhì)和普通量是一樣的普通變量,個(gè) short a,是在告訴編譯器當(dāng)我 a = 1 時(shí),你給我找到?踢 2 字節(jié)的內(nèi)存,把 1 填充進(jìn)去。指針變量,個(gè) short * p,是在告訴編器兩件事情當(dāng)我 p = xxx 時(shí),你給我找一塊 4 字節(jié)的內(nèi)存(們假設(shè)指針身的大小固 4 字節(jié)),把 xxx 填充進(jìn)去,這就咸鳥普通量完全一樣當(dāng)我 *p = yyy 時(shí),你給我到 xxx 內(nèi)存地址,且按照 short 類型也就是 2 字節(jié)大小, yyy 填充到這里。以,誰說不把一個(gè)整型量賦給指針,我這不就一個(gè)整型變 xxx 賦給指針 p 了么,我賦的時(shí)候就說是整型變量,怎么的吧但是我用它時(shí)候,我 *p 又把 xxx 看做是一個(gè)內(nèi)存地了,就去找存 xxx 的地方,又么的吧?用碼來表示就:我強(qiáng)行把個(gè)整型數(shù)值 6 賦值給指針變量 p,然后 *p 去訪問內(nèi)存址 6 并修改那個(gè)地方值:int?*?p?=?6;*p?=?999;我還可以把一地址值,強(qiáng)賦值給一個(gè)通變量:int?a?=?1;int?b?=?&a;這時(shí)普通變量 b 里面存儲(chǔ)著 a 的地址,我 *b 也同樣可以訪問到 a 并修改它的值:*b?=?999;當(dāng)然如果你這么寫編譯會(huì)報(bào)錯(cuò),但關(guān)系,我們以先把普通量 b 強(qiáng)轉(zhuǎn)為指針變量然后再 * 它:*(int?*)b?=?999;你還可以玩更花哨的, & 取地址,再 * 取值,雖然沒用:*((int?*)*(&p))?=?999;假如 a 的地址是 6 的話,其實(shí)這些花里胡的操作,最到人家 CPU 眼里,就是一條簡(jiǎn)單指令:movl?9,?(6)就是想把 999 放在 6 號(hào)格子嘛!所以申鑒不要指針想得多復(fù)雜和神圣它就是方便程序員編程同時(shí)告訴編器應(yīng)該怎么譯成最終的令。你寫了 *p,就是把 p 的值當(dāng)做內(nèi)存地去訪問,在編語言層面是加了個(gè)括:p)你寫了個(gè) &a,就是取出變量 a 的內(nèi)存地址,在匯竹山言層面就是 lea 指令:lea?a,?xxx你如果寫了個(gè) ***p 那就是,相當(dāng)加了三次括:((p)))當(dāng)然啦,以上都是方便解的偽指令具體落實(shí)到正的匯編語,我會(huì)在后的章節(jié)中講,直接從匯語言理解指,你就會(huì)發(fā)指針就是個(gè)具人而已。、寫在最后此,我們的你管這破玩叫指針 -- 基礎(chǔ)篇》就講完了。我從最開始的存格子出發(fā)逐漸推導(dǎo)出型系統(tǒng)和變的作用,進(jìn)再引出本質(zhì)和普通變量有任何區(qū)別指針變量,后再推導(dǎo)出針變量相關(guān)操作,帶你清了指針的質(zhì)。你不要記本文的知點(diǎn),重在整推導(dǎo)的過程要去理解指想解決的問是什么,它合理性在哪哪一部分信是給程序員編譯器看的哪一部分操最終又是真落實(shí)到 CPU 指令的,這些才是洹山。當(dāng)然,我是給你簡(jiǎn)單結(jié)下知識(shí)點(diǎn)關(guān)的部分,實(shí)簡(jiǎn)單說,這么幾件事定義一個(gè)指:int?*?p;賦值或初始化一個(gè)針:p?=?&a;修改指針的內(nèi)容:*p?=?999;指針的加減(其實(shí)到面講的數(shù)組有價(jià)值):p?=?p?+?1;完事,就這些!最,給大家推兩個(gè)網(wǎng)站。個(gè)是可以將 C 語言代碼實(shí)時(shí)編譯成編代碼,你以用它來自玩指針做實(shí),看它最終 CPU 指令層面是什樣。https://godbolt.org一個(gè)是 GNU C 手冊(cè),里面對(duì)各岷山語法作用講述的常清楚,不再用搜索引搜博客了。https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html比如講類型系統(tǒng)的整型類型再比如講指的定義和初化:我相信文看下來,定有人想問short * p 是不是應(yīng)該寫成short?*p或者short*?p自己去上面文檔里找答即可。OK,本文到這里終于要結(jié)束,在接下來進(jìn)階篇里,會(huì)講述二級(jí)針、數(shù)組、數(shù)指針、字串、結(jié)構(gòu)體結(jié)構(gòu)體數(shù)組指針等內(nèi)容雖然說是進(jìn)篇,但我認(rèn),指針的本反而是進(jìn)階而指針的進(jìn)反而是基礎(chǔ)因?yàn)榧偃缋?了上述的一,下面的所指針進(jìn)階玩,都可以通指針的本質(zhì)及語言設(shè)計(jì)合理性,推出來,再往無非是需要時(shí)間熟練使和掌握罷了所以,理解今天的內(nèi)容非常重要?
396268次播放
37134人已點(diǎn)贊
9714人已收藏
明星主演
愛麗絲
日高里菜
陳保元
最新評(píng)論(492+)

張開宙

發(fā)表于3分鐘前

回復(fù) 劉惠寧 : Hi,我是水水。掌機(jī),一個(gè)拿在手里隨時(shí)隨地樂的玩具;電腦,一個(gè)要插電接屏幕和專注的具;掌機(jī)游戲強(qiáng)調(diào)輕薄攜與游戲性,電腦游戲調(diào)高性能高畫質(zhì)和社交兩種設(shè)備受眾截然不同把它們結(jié)合在一起,本就是一種奇怪的矛盾。天我們就來看看,掌機(jī)電腦結(jié)合的 AYANEO Air 體驗(yàn)如何:AYANEO Air 具體配置如下,8GB+128GB 售價(jià) 3399 元,16GB+256GB 售價(jià) 3999 元,16GB+512GB 售價(jià) 4199 元,小黃鴨 / 魅族 Pandaer 聯(lián)名限定款售價(jià) 4499 元?


李育才

發(fā)表于7小時(shí)前

回復(fù) 彭晨 : 2022 年是 Linux 桌面版之年。一位來自亞馬 K8s 團(tuán)隊(duì)的程序員在自己最新的客上這樣寫道。何此言?原來是根據(jù) Stack Overflow 2022 年開發(fā)者調(diào)查結(jié)果得出。該報(bào)告顯,2022 年將 Linux 作為主要操作系統(tǒng)的比例經(jīng)達(dá)到了 40.23%,不僅超過了 macOS,還將差距拉到了 9%。要知道,去年這倆還本持平,差距僅為 0.13%。而且,這還不算 15% 的用戶選擇 WSL 的情況,即在 Windows 系統(tǒng)上運(yùn)行 Linux 子系統(tǒng)。打出生時(shí)就為服務(wù)器而生的 Linux,真的這么火了?首次力壓 macOSStack Overflow 今年這份調(diào)查一共有 7 萬多人參與。操作系統(tǒng)方面主要分為“個(gè)人使”和“工作使用”調(diào)查大家在這兩種況下最常用的操作統(tǒng)。結(jié)果是無論哪情況,Linux 系統(tǒng)都超過了 macOS,尤其以個(gè)人使用為甚。具體來,在接收到的 71503 份結(jié)果中,有 28765 位調(diào)查者在個(gè)人使用面選擇了 Linux 系統(tǒng),占比為 40.23%;有 22217 位選擇了 macOS,占比為 31.07%。兩者差距近 10%。而在工作使用方面,選擇 Linux 系統(tǒng)的達(dá)到了 28523 位,占比 39.89%,和個(gè)人使用基本持;選擇 macOS 的則有 23578 位,占比 32.97%,比個(gè)人使用要多一些(這是 macOS 最特別的地方)。但它和 Linux 的差距仍達(dá)到了近 7%。除此之外,還有 15% 左右的人無論是在個(gè)人使用還是作場(chǎng)景都會(huì)選擇微的 WSL(Windows Subsystem for Linux),進(jìn)一步證明 Linux 的受歡迎程度。而從往年數(shù)據(jù)來看Linux 的受歡迎程度一直小步攀,今年是首次與 macOS 的差距拉開這么多。所以,怪開頭的程序員管年叫“Linux 桌面版之年”。具來看,2018-2020 年之間,Linux 的數(shù)據(jù)分別為 23.2%、25.6%、 26.6%,一直屈居第三位。2021 年是分水嶺,Linux 首次以 0.13% 的微妙差距超過 macOS,成為第二名。不過在作場(chǎng)景中,macOS 還是更勝一籌(30.04% VS25.17%)。到了今年,Linux 一下子就在個(gè)人和工作兩方面都大比超過了 macOS。如 Stack Overflow 官方所說,這證明開源軟件的吸引力當(dāng)然,它和 Windows 系統(tǒng)的差距還是不少,后者然是三大操作系統(tǒng)的王者。而除了操系統(tǒng)本身,其他調(diào)的數(shù)據(jù)也顯示,Linux 在 Steam 平臺(tái)的市場(chǎng)份額近來也一直在提。今年 1 月,該平臺(tái)上 Linux 玩家占比 1.06%,而到了 11 月,這個(gè)數(shù)字漲到了 1.44%,而這主要?dú)w功于 Steam Deck 這款掌機(jī)的上市(Windows 仍然是統(tǒng)治地位的 96.11%)。就在今年 10 月的 Akademy 2022 會(huì)議上,相關(guān)人員透露,Steam Deck 的出貨量已超過 100 萬個(gè),同時(shí)還有一大批延期訂單在處。Linux 真的這么火了嗎?還是網(wǎng)友對(duì)如上數(shù)據(jù)提了質(zhì)疑。這主要是為 Stack Overflow 今年這個(gè)調(diào)查中,幾操作系統(tǒng)的數(shù)據(jù)總加起來不再等于 100%。TA 表示,這個(gè)結(jié)果說明在擇“您最主要的操系統(tǒng)時(shí)”,很多人不止選了一個(gè)。這數(shù)據(jù)對(duì)于主要只將用于工作 / 專業(yè)場(chǎng)景的人來說,高令人難以置信;對(duì)經(jīng)常在日常也使用 Linux 的開發(fā)人員來說,又低得命。很多人仍然不慣 Linux,他們吐槽的理由包括太友好的用戶 UI(即使 Ubuntu 也讓他們受不了)、安裝麻煩、包理復(fù)雜等等。不過還是有不少人認(rèn)為 Linux 確實(shí)越來越火了。一位網(wǎng)表示,Linux 的數(shù)據(jù)或許還會(huì)再一些,畢竟有用戶能本身使用 Windows 或 Mac 桌面,但卻主要通過遠(yuǎn)程終端或虛機(jī)在 Linux 系統(tǒng)上工作。另一網(wǎng)友則稱自己在過五年里,親身經(jīng)歷 Linux 在他們的工作環(huán)境中從“奇怪”、“不常見變成“再正常不過事兒”。甚至有幾非技術(shù)崗位的朋友開始考慮是否要在 Thinkpad 上運(yùn)行 Linux。在 TA 看來,Linux 興起的因素有很多,包括的興起、Linux 桌面發(fā)行版的成熟、Linux 是樹莓派等產(chǎn)品的默認(rèn) / 唯一選項(xiàng)、開發(fā)者軟件越來越支持平臺(tái),以及特別是 Linux 的硬件兼容性越來越好( Manjaro 版本為甚)等。當(dāng),還有人就是喜歡 Linux 的無廣告,和定制化的能。轉(zhuǎn)移到 Linux 系統(tǒng)的人還有很多,比如這位:不自己基本放棄 Mac,還希望自己公司的員工都轉(zhuǎn)移到 Linux 上。只不過,TA 稱唯一的阻礙因素是還沒有 Linux 硬件和軟件找到一個(gè)好 MDM(移動(dòng)設(shè)備管理)解決方案。后有意思的是,有既無法抵抗 Linux 的吸引力,也無法放下 macOS,于是“私人用 Linux,工作用 macOS 就成了一個(gè)很好的妥協(xié)。你最常用什么系?為什么?One More Thing最后,再來看看今年的 Stack Overflow 開發(fā)者調(diào)查報(bào)告還哪些亮點(diǎn)。1、編程語言方面,Rust 已連續(xù)第七年成為最受喜愛左傳語言, 87% 的開發(fā)人員表示他們希望繼使用它。同時(shí),它 Python、TypeScript 一起成為最想學(xué)習(xí)的前三大新語言。2、去年,Git 還是大家最常用的基工具,完全碾壓其的 Docker、Yarn 等。今年 Docker 已取代 Git 奪得第一,使用率從 55% 增長到 69%。此外,本項(xiàng)調(diào)查還顯示,相比專業(yè)發(fā)人員,正在學(xué)習(xí)碼的人更有可能使 3D 工具來自學(xué) 3D VR 和 AR 技術(shù):Unity 3D(23% VS8%)和 Unreal Engine(9% VS3%)。3、Docker 和 Kubernetes 分別位列最受喜愛和要學(xué)習(xí)的工具第一第二位。隨著 Docker 的數(shù)據(jù)從去年的 30% 增加到今年的 37%,可以看出大家想使用 Docker 的愿望并沒有放緩。4、Phoenix 取代 Svelte 成為最受歡迎的 Web 框架。Angular.js 連續(xù)三年成為開發(fā)者最討厭的框架React.js 連續(xù)五年成為開發(fā)最想學(xué)習(xí)的框架。5、收入最高的語言然是 Clojure。工具方面,Chef 開發(fā)人員薪水最高,但它也是開者最恐怖的工具之。數(shù)據(jù)庫系統(tǒng)方面收入最高的前三是 DynamoDB、Couchbase 和 Cassandra。6、喜歡在線學(xué)習(xí)編程的人數(shù) 60% 上升到了 70%,相比年輕人(18 歲以下),45 歲以上的受訪者喜歡從書本上習(xí)。7、62% 的受訪者每天花費(fèi)超 30 分鐘解決問題;25% 的人每天花費(fèi)一個(gè)多小時(shí)對(duì)于一個(gè)由 50 名開發(fā)人員組成的隊(duì)來說,每周花費(fèi)搜索答案 / 解決方案上的時(shí)間總計(jì) 333-651 小時(shí)。8、85% 的開發(fā)人員表示,他的公司支持遠(yuǎn)程辦。完整報(bào)告:https://survey.stackoverflow.co/2022/#section-most-popular-technologies-operating-system參考鏈接:[1]https://www.justingarrison.com/blog/year-of-linux-desktop/[2]https://survey.stackoverflow.co/2022/#section-most-popular-technologies-operating-system本文來自微信公眾號(hào)量子位 (ID:QbitAI),作者:豐? 


熊坂出

發(fā)表于3小時(shí)前

回復(fù) Mackinnon : IT之家 1 月 12 日消息,蘋果旗下 Apple Music、Apple TV 和 Apple Devices 三款應(yīng)用以預(yù)覽版的形式上架 Microsoft Store 應(yīng)用商城。網(wǎng)友 @aaronp613 通過深入挖掘 Apple Devices 應(yīng)用之后,在代碼中發(fā)現(xiàn)了“Reality OS”和“xrOS”蹤跡。蘋果已經(jīng)申請(qǐng)了“Reality OS”和“xrOS” 兩款名稱商標(biāo),此前國外科技媒體 9to5Mac 表示這兩款名稱同時(shí)存在。前者基于 iOS 平臺(tái),后者基于 macOS 平臺(tái)。只是目前尚不清楚兩個(gè)系統(tǒng)鰼鰼間有什么樣的差別。IT之家了解到,國外科技媒體 The Information 在 2021 年報(bào)道中指出,蘋果開發(fā)的首款頭顯鱧魚司需要連接 iPhone,大部分處理都是在 iPhone 端完成的。而蘋果后續(xù)還開發(fā)了儵魚款可以獨(dú)運(yùn)行的頭顯設(shè)備,不需要連接 iPhone 即可操作。在最新一期的 Power On 時(shí)事通訊中,彭博社的 Mark Gurman 則表示,之前有關(guān)該設(shè)備原定于 1 月(本月)發(fā)布的報(bào)道從山準(zhǔn)確的 —— 但該時(shí)間現(xiàn)在有所推遲。他表示孔雀蘋果打算在春季,也就 6 月的 WWDC 之前發(fā)布其首款 AR / VR 頭顯,可能會(huì)被命名為“Reality Pro”。該設(shè)備將于 2023 年秋季晚些時(shí)候開始銷售,與孟涂明錤的預(yù)測(cè)相符

猜你喜歡

        <code id='3b43e'></code><style id='92260'></style>
        • <acronym id='eb6c5'></acronym>
          <center id='cb635'><center id='709d9'><tfoot id='022a6'></tfoot></center><abbr id='a11b1'><dir id='ed7b8'><tfoot id='89c74'></tfoot><noframes id='82845'>

          • <optgroup id='756b8'><strike id='6d45b'><sup id='a63d5'></sup></strike><code id='67d02'></code></optgroup>
              1. <b id='14dbd'><label id='3d171'><select id='649ce'><dt id='0e2a4'><span id='74342'></span></dt></select></label></b><u id='149a6'></u>
                <i id='fa8f8'><strike id='df3eb'><tt id='a5982'><pre id='2f009'></pre></tt></strike></i>

                    <code id='b7ab1'></code><style id='90842'></style>
                  • <acronym id='676e3'></acronym>
                    <center id='06520'><center id='b1969'><tfoot id='e3199'></tfoot></center><abbr id='19d37'><dir id='fcb4d'><tfoot id='36f5c'></tfoot><noframes id='9e008'>

                  • <optgroup id='19ceb'><strike id='33ec6'><sup id='86ade'></sup></strike><code id='a3cc3'></code></optgroup>
                      1. <b id='1baa1'><label id='d5f92'><select id='ba552'><dt id='643c9'><span id='5a9c2'></span></dt></select></label></b><u id='ddf70'></u>
                        <i id='3a957'><strike id='9e795'><tt id='a217c'><pre id='7476e'></pre></tt></strike></i>

                        黄梅戏五朵金花大联唱
                        熱度
                        22838
                        點(diǎn)贊

                            <code id='5a17f'></code><style id='025be'></style>
                          • <acronym id='7ca69'></acronym>
                            <center id='5aaad'><center id='4829e'><tfoot id='4392c'></tfoot></center><abbr id='24eab'><dir id='c43e8'><tfoot id='98bb3'></tfoot><noframes id='a014f'>

                          • <optgroup id='be12c'><strike id='4d8e4'><sup id='b5b54'></sup></strike><code id='66118'></code></optgroup>
                              1. <b id='5246a'><label id='b3421'><select id='577d2'><dt id='87427'><span id='4246d'></span></dt></select></label></b><u id='76d6c'></u>
                                <i id='3411a'><strike id='eef36'><tt id='8c0fc'><pre id='bad5c'></pre></tt></strike></i>

                                友情鏈接:

                                千龍網(wǎng) CSDN社區(qū) 萬界獨(dú)尊 百科全說第2季 東郭小節(jié)
                                无码成年人电影免费看_完整版免费av片_日韩免费无遮挡毛片一区_成年女人色黄费视频