夢雨天涯
微信hui530527 &
級別: 網絡英雄
![]() |
圖片:
![]()
圖片:
![]() 如圖,按照先建立指針,指針地址變化,然后賦值內容到指針,有&和*號,就是沒辦法成功。 |
|
---|---|---|
|
夢雨天涯
微信hui530527 &
級別: 網絡英雄
![]() |
第1指定指針只能開機指定一次 第2指針不能賦值,只能做加減法 第3,需要指定地址后,才能延時賦值,要不然會出錯 ![]() |
|
---|---|---|
|
sjm213
有小知識,無大學問。
級別: 論壇版主
![]() ![]() ![]() ![]() |
第1條,不對。指針可以多次指定,不過是跟雙線圈一樣,要注意不要有沖突; 第2條,不對。指針可以賦值,但是要按照他固定的格式來賦值。如監控所示的16#08000064就是VD100寄存器對應的指針。這樣賦值太抽象了,所以在寄存器前邊加&符號,自動把地址轉換成16#08000064,不需要自己來做這個轉換(不過如果必須經過轉換才賦值給指針,那么會對理解指針格式有更好的幫助,反而不容易出錯了)。 如果直接對指針進行MOV賦值,寫入到這個指針的是寄存器內的數值,導致其格式受損,指針失效。 加法、減法就是在16#08000064基礎上進行操作,比如加4就是讓指針變為16#08000068,指向VD104,從而實現了指針地址的改變。 第3條,對的。需要先制定地址再進行賦值,不然賦值到哪去呢? |
---|---|
|
donxlr
級別: 探索解密
![]() |
圖片:
![]()
圖片:
![]() 傳送指針用 MOV_DW,AC1,AC2,AC3 計算用DW相關的計算,引用的時候直接*AC1就行了,指令需要什么類型自動識別什么類型,不需要特意去寫B W D |
---|---|
|
donxlr
級別: 探索解密
![]() |
指針正常無法直接尋址bool,如果引用里面的bool,需要先將字節解析成temp變量,再在引用引用結束的時候重新寫回引用的byte |
---|---|
|
ludens
級別: 正式會員
![]() |
第一步&VB100取了VB100的地址存在VD10里 第二步相當于又把4寫入了VD10,那么這個時候VD10里已經不存在VB100的指針了 那么第三步,再使用*VD10對VD10解引用,一定是不能正確指向VB100的 [ 此帖被ludens在2025-02-14 20:04重新編輯 ] |
---|---|
|