VBA中對記憶體位址的操作

2021-10-05 13:03:37 字數 543 閱讀 9849

vb中不支援指標資料型別,相應的vba也不支援指標資料型別,因此也沒有類似於c語言中的位址操作符&,但是仔細研究後,vba還是支援一些位址操作的。這裡介紹兩種函式,varptr(),strptr()。varptr()返回乙個變數(字串變數除外)的首位址,strptr()返回乙個字串變數的首位址。

**段:

dim aa as integer

dim bb as integer

aa = 9

bb = 86

debug.print varptr(aa)

debug.print varptr(bb)

dim cc as string

dim dd as string

cc = "123456"

dd = "abc"

debug.print strptr(cc)

debug.print strptr(dd)

執行結果:

從結果中可以看出,整形變數是連續儲存的,字串變數不是連續儲存的,這也很好理解,因為字串變數是變長。

c語言對記憶體位址的直接操作(讀ARM有感)

在arm中看到了 define rwtcon volatile unsigned 0x03000000 然後在函式呼叫中對這位址直接賦值,rwtcon pclk 100000 1 8 3 3 剛看到這嚇我一跳,以前只聽說過沒有看過,這裡還真這樣幹了,這就是c語言中的直接對記憶體賦值,以上的語句還真有...

記憶體位址的對齊

3 有 pragma pack int 進行設定,如果結構體某成員的sizeof大於你設定的,則按你的設定來對齊 注意 每次用 pragma pack int 進行設定後,要用 pragma pack 對其結束,免得造成錯誤 view plain copy to clipboard print in...

python id 的 is 記憶體位址

1,id 記憶體位址 2.比較的是值 3.is 比較的是記憶體位址 數字,字串,有小資料池 int 5 256 str 1,不能有空格 2.長度不能超過20個字元 3.不能有特殊字元如 1.id 記憶體位址 1 id 記憶體位址 2 s alex 3 print s,type s id s 4 al...