最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

指針(類(lèi)型+地址)

2020-11-26 13:59 作者:開(kāi)源開(kāi)發(fā)者  | 我要投稿

指針就是類(lèi)型+地址

指針=(int*)進(jìn)程的虛擬地址? ? ?這里的int*表示強(qiáng)制轉(zhuǎn)換整數(shù)為int虛擬內(nèi)存地址的常量指針

在c語(yǔ)言中,為了表示指針變量和它所指向變量之間的聯(lián)系,用“*”表示指向。

例如:

int i,*ptr1;

ptr1=&i;

*ptr1=100;/*把100存入ptr所指向的變量i中*/

等同于:i=100;

又如:

char ch,*ptr2;

ptr2=&ch;

*ptr2+=32;/*把ptr2所指向變量ch中的值加32*/

相當(dāng)于:ch+=32;

ch=*ptr2;相當(dāng)于:ch=i;

應(yīng)當(dāng)注意的是,在變量聲明中的“*”和表達(dá)式中的“*”意義是不一樣的,變量聲明中的“*”意味著定義一個(gè)存放指針的指針變量,而表達(dá)式中的“*”表示間接存取指針變量里的指針?biāo)赶蜃兞康闹?。在編程序是?jīng)常用到。

mov 的第 1 操作數(shù)表示傳輸“源”,第 2 操作數(shù)表示傳輸“目標(biāo)”。例如“mov 內(nèi)存 , 寄存

器”表示將內(nèi)存中的值加載到寄存器。

實(shí)際在編寫(xiě)指令時(shí),還需要根據(jù)所傳輸?shù)臄?shù)據(jù)的大小添加助記符后綴。例如將 32 位寬的立

即數(shù) 105000 加載到 eax 寄存器時(shí),要加上后綴 l,寫(xiě)成下面這樣。

movl $105000, %eax

將寄存器 ecx 中的值轉(zhuǎn)移到 eax 寄存器的寫(xiě)法如下所示。

movl %ecx, %eax

最后,將 ecx 寄存器中的數(shù)據(jù)作為地址訪問(wèn)內(nèi)存,并將內(nèi)存上的數(shù)據(jù)加載到 eax 寄存器中

的寫(xiě)法如下所示。

movl (%ecx), %eax

不習(xí)慣匯編的話會(huì)覺(jué)得 %ecx 和 (%ecx) 的區(qū)別難以理解,可以把它當(dāng)作 C 語(yǔ)言的指針。

指針變量 ptr 自身的值等同于 %ecx 的話,那么對(duì)指針的取值操作 *ptr 就相當(dāng)于 (%ecx)。

另外,%ecx 是訪問(wèn)寄存器,而 (%ecx) 則是利用寄存器訪問(wèn)內(nèi)存。

C 語(yǔ)言的指針就是保存虛擬地址的數(shù)據(jù)類(lèi)型。例如將整數(shù) 15000 強(qiáng)制轉(zhuǎn)換為 char* 類(lèi)型并

訪問(wèn),就能夠得到該進(jìn)程的地址空間中 15000 地址上的值。

如果下面出現(xiàn)b = a;那么它就會(huì)根據(jù)符號(hào)表找到變量的真正的物理位置,取得它的值,賦給b。

我們?cè)俣x一個(gè)變量 a 時(shí),變量 a 本質(zhì)上代表一個(gè)存儲(chǔ)單元,CPU通過(guò)該存儲(chǔ)單元的地址訪問(wèn)該存儲(chǔ)單元中的數(shù)據(jù)。所以a本來(lái)代表兩個(gè)值:存儲(chǔ)單元的地址和儲(chǔ)單元中的數(shù)據(jù)。于是就有了二異性。為了消除這種二義性,a存儲(chǔ)單元中的數(shù)據(jù)可以是一個(gè)普通數(shù)值,也可以是另一個(gè)存儲(chǔ)單元的地址,比如:a = &b; 語(yǔ)句就是將b的存儲(chǔ)單元的地址存入a存儲(chǔ)單元中。


指針(類(lèi)型+地址)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
晋城| 西平县| 托里县| 长武县| 罗源县| 安国市| 乡宁县| 汉源县| 江华| 莆田市| 厦门市| 和静县| 巴彦淖尔市| 长宁县| 浪卡子县| 离岛区| 塘沽区| 铜陵市| 班玛县| 崇礼县| 东辽县| 曲阜市| 华池县| 西华县| 长宁县| 横峰县| 商洛市| 建德市| 英超| 精河县| 内黄县| 秦安县| 仙居县| 恩平市| 工布江达县| 临泽县| 大邑县| 运城市| 绥中县| 福鼎市| 淅川县|