国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ó)家法律
获嘉县| 崇义县| 武宁县| 兴仁县| 咸宁市| 习水县| 桃源县| 长乐市| 阿拉善右旗| 特克斯县| 南江县| 洛阳市| 株洲市| 砚山县| 邢台市| 乌拉特后旗| 元阳县| 正安县| 论坛| 潮州市| 北安市| 宝鸡市| 伊川县| 什邡市| 白城市| 小金县| 抚顺市| 仁化县| 南宫市| 阿荣旗| 沁阳市| 得荣县| 洪洞县| 团风县| 东阿县| 万山特区| 长春市| 辉县市| 德清县| 南丹县| 元阳县|