精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

指針是怎樣一步步發(fā)明出來的?

開發(fā) 前端
有了變量,程序員在編程時(shí)就可以操作符號(hào)num而不是0x8049320了,但只使用符號(hào)num也會(huì)有問題,這個(gè)問題就是如果兩個(gè)函數(shù)需要共享內(nèi)存中的一份數(shù)據(jù)該怎么辦呢?

大家好,我是小風(fēng)哥,今天來聊聊指針是怎么被一步步被發(fā)明出來的。

內(nèi)存本身就是一個(gè)裝字節(jié)的容器,和你用的鞋柜、書柜等沒有本質(zhì)區(qū)別:

圖片圖片

唯一的區(qū)別在于鞋子或者書可以隨便放,無非找的時(shí)候困難點(diǎn)。

但字節(jié)就不一樣了,不能隨便放,必須明確放到了哪里,因此內(nèi)存中的每個(gè)裝字節(jié)的地方都得編號(hào),這個(gè)編號(hào)就是內(nèi)存地址。

圖片圖片

在這種情況下,該怎么向內(nèi)存中寫數(shù)據(jù)呢?很簡(jiǎn)單,就一句話:

把數(shù)字2寫到第0x8049320號(hào)內(nèi)存中

這就是所謂的內(nèi)存讀,用機(jī)器指令表示可以這樣:

store 0x8049320 2

效果是這樣的:

圖片圖片

可以看到,利用store指令你可以直接操作任何一個(gè)內(nèi)存地址,也就是直接操作或者控制內(nèi)存這種硬件,這是一種很強(qiáng)大的能力:

圖片圖片

但同時(shí)也非常危險(xiǎn),如果內(nèi)存地址算錯(cuò)那么寫到內(nèi)存中的數(shù)據(jù)就是錯(cuò)誤的或者會(huì)用錯(cuò)誤的數(shù)據(jù)覆蓋掉內(nèi)存中原本的數(shù)據(jù):

圖片圖片

而且這也很繁瑣,因?yàn)槌绦騿T需要直面內(nèi)存,看下內(nèi)存地址0x8049320,你的第一反應(yīng)肯定是:這是個(gè)啥?

圖片圖片

人類天生不擅長應(yīng)對(duì)數(shù)字,而是更喜歡代號(hào):張三李四。

顯然,"把num賦值為2"要比"store 0x8049320 2"要容易理解很多,這里num這個(gè)代號(hào)就是所謂編程語言中的變量。

圖片圖片

就這樣變量誕生了。

實(shí)際上變量不過是某個(gè)內(nèi)存格子的一個(gè)代號(hào):

圖片圖片

當(dāng)然這是在編程語言層面的理解,在真實(shí)的內(nèi)存中可不存在一個(gè)叫做num的符號(hào),而是內(nèi)存地址0x8049320這個(gè)地方保存了數(shù)字2:

圖片圖片

編譯器不過是把代號(hào)num和0x8049320這塊內(nèi)存關(guān)聯(lián)起來。

有了變量,程序員在編程時(shí)就可以操作符號(hào)num而不是0x8049320了,但只使用符號(hào)num也會(huì)有問題,這個(gè)問題就是如果兩個(gè)函數(shù)需要共享內(nèi)存中的一份數(shù)據(jù)該怎么辦呢?

圖片圖片

以C語言為例,現(xiàn)在有兩個(gè)函數(shù)都需要對(duì)變量num執(zhí)行加1操作:

void func1(int a) {
  a = a + 1;
}
void func2(int b) {
  b = b + 1;
}


int num = 2;
func1(num);
func2(num);

我們期待的效果是func1和func2執(zhí)行完畢后num的值變成4,但實(shí)際上兩個(gè)函數(shù)執(zhí)行完畢后num的值依然是2。

為什么呢?

我們希望的是a和num代表同一個(gè)內(nèi)存格子:

圖片圖片

但實(shí)際上變量a上有獨(dú)屬于自己的內(nèi)存格子:注意看函數(shù)的參數(shù)int a,

圖片圖片

調(diào)用函數(shù)傳遞參數(shù)func1(num)后的效果是這樣的:

圖片圖片

func函數(shù)操作的根本就是和num完全不同的另一個(gè)變量,它們位于不同的內(nèi)存格子(內(nèi)存地址)。

既然聲明變量時(shí)沒有辦法直接關(guān)聯(lián)到某塊內(nèi)存那么我們就必須用間接的辦法,因?yàn)橛?jì)算機(jī)科學(xué)中任何問題都可以通過增加一個(gè)中間層來解決。

圖片圖片

這個(gè)中間層就是借助內(nèi)存地址。

圖片圖片

不要忘了除了2關(guān)聯(lián)到了符號(hào)num,這當(dāng)然只是邏輯上存在的關(guān)聯(lián),編譯器給實(shí)現(xiàn)的;

實(shí)際上2還有一個(gè)真實(shí)的、物理的上的屬性,那就是內(nèi)存地址,這是真實(shí)的存在,不以任何上層封裝為轉(zhuǎn)移;

圖片圖片

既然變量a沒辦法直接關(guān)聯(lián)到num,那就曲線救國,變量a保存2所在的內(nèi)存地址,也就是變量num的內(nèi)存地址:

圖片圖片

變量a依然是那個(gè)變量a,但此時(shí)變量a中保存的不再是2這個(gè)數(shù)字,而是另一個(gè)數(shù)字0x8049320。

然而此時(shí)如果你這樣寫:

int b = a;

此時(shí)b中保存的依然是0x8049320這個(gè)數(shù)字,而不是2這個(gè)數(shù)字:

圖片圖片

顯然必須明確的告訴編譯器我們希望把變量a的內(nèi)容當(dāng)做內(nèi)存地址來使用而不是單純的數(shù)字。

怎么做到呢?在聲明變量和使用變量時(shí)加個(gè)符號(hào)就好:

int a;      ---->  int* a;
int b = a;  ---->  int b = *a;

就這樣指針被發(fā)明了出來,現(xiàn)在的變量a就是所謂的指針,變量a關(guān)聯(lián)的內(nèi)存保存的依然是個(gè)普通的數(shù)字,只不過這個(gè)數(shù)字可以被當(dāng)做內(nèi)存地址使用。

再次強(qiáng)調(diào),當(dāng)我們寫下int* a時(shí),變量a依然會(huì)占據(jù)一塊內(nèi)存格子:

圖片圖片

這塊內(nèi)存中可以裝入任何的數(shù)字,這個(gè)數(shù)字代表的另一塊內(nèi)存的起始地址:

圖片圖片

所以并不是說變量a直接指向一塊內(nèi)存或者指向num:

圖片圖片

變量a和變量num沒有半毛錢關(guān)系,變量a和變量num位于不同的內(nèi)存地址上,只不過變量a的內(nèi)容比較特殊而已,它恰好是變量num所在的內(nèi)存地址:

圖片圖片

所以從這里看我們只能說a間接指向了變量num。

當(dāng)然在你熟悉指針的概念后就可以放心的忽略這層間接了,可以把a(bǔ)看做直接指向變量num,這就是我們常說的指針指向哪里。

圖片圖片

在很多情況下,我們實(shí)際上根本就不關(guān)心內(nèi)存地址這種間接層,可以直接把a(bǔ)看做num的另一個(gè)稱謂,這在其它高級(jí)語言中叫做引用

所以引用實(shí)際上是在指針基礎(chǔ)上的進(jìn)一步抽象,使用引用時(shí)我們可以簡(jiǎn)單的把a(bǔ)和num等同看待:

圖片圖片

此時(shí)a和num都表示0x8049320這塊內(nèi)存中的內(nèi)容,也就是數(shù)字2。

C語言中的指針把內(nèi)存地址暴露給了程序員,這給了程序員直接控制硬件的能力,這種能力十分的powerful,因此C很適合進(jìn)行系統(tǒng)編程,可以用來實(shí)現(xiàn)操作系統(tǒng)等;

圖片圖片

但也非常危險(xiǎn),內(nèi)存地址計(jì)算錯(cuò)誤的話會(huì)導(dǎo)致程序崩潰或者出現(xiàn)難以排查的bug。

圖片圖片

但并不是所有程序員都要像Linus那樣去編寫操作系統(tǒng),如果你只想實(shí)現(xiàn)一些應(yīng)用層面的程序,爬蟲等,在這種情況下指針就不是必須的,所以很多編程語言并不提供指針。

指針的出現(xiàn)讓高級(jí)語言也可以操作復(fù)雜的數(shù)據(jù)結(jié)構(gòu)比如鏈表和二叉樹等。

圖片圖片

1964年Harold Lawson因在PL/I中發(fā)明指針這一概念而榮獲2000年IEEE計(jì)算機(jī)先鋒獎(jiǎng),獲獎(jiǎng)理由是“指針概念的引入首次使高級(jí)語言靈活處理鏈表成為可能”。

責(zé)任編輯:武曉燕 來源: 碼農(nóng)的荒島求生
相關(guān)推薦

2024-06-27 08:30:36

內(nèi)存擴(kuò)容堆區(qū)

2025-03-28 09:39:15

CPU指令信號(hào)

2025-04-03 01:45:00

2025-04-30 04:20:00

操作系統(tǒng)虛擬內(nèi)存

2024-11-11 10:28:33

操作系統(tǒng)Unix系統(tǒng)

2024-08-30 08:30:29

CPU操作系統(tǒng)寄存器

2017-01-19 21:08:33

iOS路由構(gòu)建

2024-08-06 09:29:54

程序機(jī)器指令字符串

2018-07-13 15:36:52

2019-03-05 14:09:27

Docker存儲(chǔ)容器

2019-07-09 15:23:22

Docker存儲(chǔ)驅(qū)動(dòng)

2025-04-09 08:45:00

操作系統(tǒng)進(jìn)程線程

2018-12-24 10:04:06

Docker存儲(chǔ)驅(qū)動(dòng)

2021-03-15 09:20:15

微軟IBM研究院

2010-03-04 16:28:17

Android核心代碼

2016-11-02 18:54:01

javascript

2017-12-25 11:50:57

LinuxArch Linux

2011-05-10 10:28:55

2020-12-24 11:19:55

JavaMapHashMap

2019-04-01 10:15:02

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

免费h视频在线观看| 日韩成人免费在线视频| 免费视频成人| 亚洲欧美日韩综合aⅴ视频| 国产超碰91| 日本天堂网在线| 久久久久国产精品| 亚洲精品黄网在线观看| 成人免费在线观看视频网站| 国产视频在线播放| 不卡一区二区中文字幕| 国产精品久久综合av爱欲tv| 午夜69成人做爰视频| 日韩a级大片| 91精品中文字幕一区二区三区| 国产二区视频在线| 在线免费观看黄色| www..com久久爱| 91久久久久久| 一级做a爰片久久毛片| 午夜久久一区| 中文字幕国内精品| free性中国hd国语露脸| 久久久精品区| 欧美日韩国产乱码电影| 欧美三级一级片| 中文字幕免费高清电视剧网站在线观看| 久久久久免费观看| 国产伦精品一区二区三区照片91| 中文字幕在线播放不卡| 国产视频一区三区| 欧美成人精品在线视频| 少妇愉情理伦三级| 亚洲免费成人av在线| 日韩精品一区二| 91精品999| 成人国产精品入口免费视频| 黑人巨大精品欧美一区二区免费| 欧妇女乱妇女乱视频| 成人在线免费观看| 国产日产欧产精品推荐色| 久久国产一区二区| 天天操天天爱天天干| 国产91精品在线观看| 91影视免费在线观看| 国产又粗又猛又黄| 免费看黄色91| 国产噜噜噜噜久久久久久久久| 日韩一级片中文字幕| 久久国产精品久久久久久电车| 2019中文在线观看| 精品免费囯产一区二区三区 | 精品乱码一区内射人妻无码| 久久久久久久欧美精品| 欧美中文字幕精品| 丁香社区五月天| 久久一区二区三区超碰国产精品| 91产国在线观看动作片喷水| 天堂网av手机版| 久久xxxx| 国产精品国产三级国产专播精品人 | 美女黄视频在线观看| 中文字幕在线不卡一区| 黑人巨大国产9丨视频| 在线不卡日本v二区707| 亚洲成av人影院在线观看网| 国产精品无码av在线播放| 亚洲少妇视频| 欧美日韩在线观看一区二区| 国产成年人视频网站| 粉嫩一区二区三区在线观看| 日韩欧美一区在线观看| 屁屁影院国产第一页| 西野翔中文久久精品国产| 亚洲色图狂野欧美| 性生交大片免费全黄| 欧美三级在线| 国产97在线观看| 91精品国产乱码久久久久| 国产一区二区三区免费看| 肥熟一91porny丨九色丨| 色婷婷av一区二区三区之e本道| 91免费看`日韩一区二区| 日韩高清在线播放| 在线看女人毛片| 日韩欧美成人精品| 特级黄色片视频| 理论片一区二区在线| 亚洲一区二区久久久| 波多野结衣亚洲一区二区| 亚洲乱亚洲高清| 国产精品视频网址| 亚洲精品97久久中文字幕| 91色婷婷久久久久合中文| 天天久久人人| 中文av资源在线| 色94色欧美sute亚洲线路一ni | 粉嫩av亚洲一区二区图片| 免费一区二区三区在在线视频| 在线观看免费版| 亚洲成人免费观看| 五月花丁香婷婷| 蜜桃一区二区三区| 欧美黑人性猛交| 一级黄色录像大片| 久久这里只有精品视频网| 欧美一级黄色录像片| 成人教育av| 欧美不卡一二三| 免费黄色激情视频| 久久国产精品亚洲77777| 99re资源| 黄色网页在线免费观看| 色先锋资源久久综合| 精品人妻一区二区三| 神马电影久久| 91精品国产色综合久久不卡98口 | 亚洲精品国产精品国自产在线| 少妇视频一区二区| 久久亚洲国产精品一区二区| 国产精品一区二区av| 在线免费av电影| 91久久线看在观草草青青| 制服丝袜av在线| 中文乱码免费一区二区三区下载| 国产福利精品视频| 日本天堂在线| 亚洲6080在线| 日本久久久久久久久久| 亚洲综合激情在线| 91理论片午午论夜理片久久| 77导航福利在线| 色妹子一区二区| 国产美女喷水视频| 亚洲少妇在线| 精品欧美国产| 波多野结衣在线高清| 精品人在线二区三区| 欧美日韩亚洲国产另类| 国产精品亚洲综合一区在线观看| 正在播放91九色| 日本欧美在线| 久久精品亚洲国产| 国产露脸国语对白在线| 亚洲人成网站色在线观看| 亚洲视频一二三四| 欧美电影《睫毛膏》| 国产日本欧美在线观看| 日本免费在线观看| 9191成人精品久久| 久久国产精品国语对白| 国产东北露脸精品视频| 成人午夜视频免费观看| 超碰精品在线| 国产做受69高潮| 亚洲av激情无码专区在线播放| 五月激情综合婷婷| 亚洲第一成人网站| 日韩av二区在线播放| 亚洲成人在线视频网站| 在线观看欧美| 久久久久久久激情视频| 午夜在线视频免费| 色欧美日韩亚洲| 国产精品久久久免费看| 国产精品资源在线| 999在线观看视频| 久久av导航| 成人精品福利视频| 午夜小视频在线观看| 亚洲第一二三四五区| 91video| 国产精品电影一区二区三区| 夜夜爽久久精品91| 国产欧美欧美| 亚洲欧美影院| 77成人影视| 日本亚洲欧洲色| 麻豆视频在线观看免费| 精品成人一区二区三区四区| 一级片中文字幕| 国产精品色呦呦| 无码人妻久久一区二区三区蜜桃| 免费日韩av片| 亚洲 欧洲 日韩| 久久婷婷国产| 成人美女av在线直播| av福利在线导航| 在线精品高清中文字幕| 北条麻妃一二三区| 日韩欧美精品网址| 97在线观看免费高| 99久久久无码国产精品| 亚洲精品www.| 国产乱码精品| 免费成人深夜夜行网站视频| 日韩影视高清在线观看| 国产精品专区第二| 国模精品视频| 久久精品亚洲精品| 国产黄色在线| 精品国产a毛片| 一区二区三区精彩视频| 狠狠色狠色综合曰曰| 91插插插插插插| 久久一区二区三区四区| 不卡的一区二区| 免费观看日韩电影| 久久精品男人天堂av| 1024精品视频| 中文字幕一区二区三区在线视频| 美国av一区二区三区| 日韩一区二区三区精品| 国产精品美女在线观看| 理论片午夜视频在线观看| 麻豆国产精品va在线观看不卡| 日本高清中文字幕二区在线| 日韩美女一区二区三区四区| 在线播放国产一区| 日韩欧美中文字幕在线观看 | 天天免费综合色| 欧美日韩一级大片| 1000部国产精品成人观看| 久久丫精品忘忧草西安产品| 成人av在线观| 国产亚洲精品成人a| 国产盗摄女厕一区二区三区| 波多野结衣国产精品| 日本成人在线不卡视频| 欧美日韩在线不卡视频| 国产精品三上| 无码专区aaaaaa免费视频| 国产在线日韩| www.在线观看av| 欧美国产高清| 成人短视频在线观看免费| 亚洲影视一区| 91毛片在线观看| 2019日韩中文字幕mv| 中文精品电影| 欧美一级爱爱视频| 欧美黄色一区二区| avove在线观看| 欧美一区高清| 嫩草影院中文字幕| 欧美精品91| 男人的天堂avav| 亚洲黄网站黄| 99久久国产综合精品五月天喷水| 一区在线免费| 很污的网站在线观看| 99国产精品视频免费观看一公开| 99在线免费视频观看| 激情欧美日韩| 成 年 人 黄 色 大 片大 全| 99精品视频免费观看视频| 免费无码毛片一区二三区| 日韩午夜精品| 欧美日韩国产精品激情在线播放| 午夜综合激情| 午夜免费高清视频| 精品一区二区三区免费播放| 一区二区三区欧美精品| 国产精品资源网| 亚洲国产精品无码久久久久高潮| 久久影音资源网| 91禁男男在线观看| 欧美国产亚洲另类动漫| 日韩免费av一区| 一区二区三区四区在线| 日本中文字幕免费| 色噜噜狠狠成人中文综合| 一级欧美一级日韩| 精品剧情v国产在线观看在线| 亚洲 另类 春色 国产| 中文字幕在线观看亚洲| 欧美24videosex性欧美| 26uuu日韩精品一区二区| 久久精品国产福利| 成人资源av| 国产麻豆精品久久| 日韩精品一区二区三区电影| 日韩一区二区免费看| 色噜噜狠狠永久免费| 国产成人av电影| 日韩人妻无码精品综合区| 自拍视频在线观看一区二区| 国产精品午夜影院| 欧美情侣在线播放| 特黄视频在线观看| 色婷婷综合成人av| 嗯~啊~轻一点视频日本在线观看| 国产福利精品在线| 第一区第二区在线| 一区二区不卡在线| 国产深夜精品| 国产亚洲色婷婷久久| 国产欧美精品国产国产专区| 国产精品23p| 欧美巨大另类极品videosbest| 五月天丁香视频| 久久天堂电影网| 伊人久久国产| 99理论电影网| 成久久久网站| 成人在线免费观看av| 国产在线精品免费av| 亚洲精品成人无码熟妇在线| 一区二区三区日韩精品视频| 97人妻精品视频一区| 亚洲精品久久久久久久久| 超碰caoporn久久| 国产精品免费观看在线| 全国精品免费看| 欧美久久久久久久久久久久久久| 蜜臂av日日欢夜夜爽一区| 中文人妻一区二区三区| 亚洲国产视频一区| 国产乱叫456在线| 中文字幕日韩综合av| 欧美××××黑人××性爽| 国产日韩欧美精品| 欧美日韩国产欧| 亚洲免费成人在线视频| 日本一区二区免费在线| 国产午夜精品久久久久| 日韩av在线电影网| 九色porny自拍视频在线播放| 亚洲伊人一本大道中文字幕| 日韩精品久久| 韩国中文字幕av| 91欧美激情一区二区三区成人| 精品无码一区二区三区电影桃花 | 高潮毛片7777777毛片| 久久久国产视频| 精品国产黄a∨片高清在线| 日韩精品伦理第一区| 三级成人在线视频| 中文字幕 自拍| 色久优优欧美色久优优| 黄色片视频在线观看| 日韩免费视频在线观看| 国产精品一区高清| 亚洲五月天综合| 中文字幕欧美国产| 一区二区视频网站| 日韩视频在线免费| 国产一区二区在线观| 色婷婷777777仙踪林| 国产成人无遮挡在线视频| 久草成人在线视频| 亚洲国产成人精品一区二区| 51精品视频| 欧美一区二区三区精美影视| 天堂蜜桃一区二区三区| 久久视频精品在线观看| 欧美日韩一区二区在线观看| 黄色网页在线看| 国产传媒一区二区| 国产欧美精品久久| 欧美日韩高清丝袜| 欧美日韩精品一区二区在线播放| 麻豆91在线| 成人h在线播放| 国产日韩1区| 丰满的亚洲女人毛茸茸| 欧美日韩精品一区视频| 99福利在线| 精品在线一区| 日本色综合中文字幕| 亚洲成人生活片| 日韩精品视频在线观看网址| 四虎4545www精品视频| 国产人妻互换一区二区| 91在线视频免费观看| 亚洲视频在线免费播放| 欧美二区在线播放| 亚洲欧美tv| 欧美成人手机在线视频| 欧美日韩午夜激情| 亚乱亚乱亚洲乱妇| 国产精品久久久久久久久久久久午夜片 | 国产美女三级视频| 最新成人av在线| 香蕉视频黄色片| 国产日韩欧美一二三区| 亚洲黄色成人| 精品亚洲乱码一区二区| 精品偷拍各种wc美女嘘嘘| 亚洲欧洲二区| 男人操女人逼免费视频| 一区在线观看免费| 神马精品久久| 91在线国产电影| 爽好多水快深点欧美视频| 欧美成人一二三区| 一区二区三区回区在观看免费视频| 亚洲一区二区三区在线免费 | 91高潮精品免费porn| 日韩av专区|