指針(VFB教程3-1)

  勇芳 2018-2-16 6784

指針在高價編程里,扮演著非常重要的角色,不可缺少。新手們被書上的說明,搞的云里霧里,越看越不明白。

需要時間慢慢理解,在我眼里,指針,就是個特殊的變量,與其它變量相比,不過是用法不同而以。

簡單的可以理解,指針是盜用別的變量來自己用,(還有其它用途。)

dim aa as long '聲明變量
dim bb as long ptr '聲明個指針
bb=VarPtr(aa) ' 盜用aa 變量  也可以用簡寫 bb=@aa
aa=1         '原變量用法
print aa 
*bb=1        '指針用法,如同上面 aa 一樣,現在的 *bb 就是 aa 
print *bb

看完代碼,肯定你會說,直接用 aa 不好嗎?干嘛用 *bb

其實這只是簡單例題,大多時候,指針都用于結構

sub ccc(aa as rect ptr)
aa->Left=10  '給指針的 rect 成員賦值 
end sub

【指針】其實就是【地址】,表示某個變量的內存地址,當然,如果是代碼指針,就是過程或函數的內存地址

可以理解,變量的內容,存放在內存的什么位置,

假如 AA 是指針,可以指定任意地址給它,然后如同普通變量一樣使用了。

Varptr 返回變量或對象的內存地址。

Strptr 返回字符串字符數據的內存地址。

Procptr 返回過程的內存地址

*BB  BB指針變量了普通變量,用法就是普通變量

BB->成員  BB是結構變量 如同 cc.成員 一樣當普通變量用

BB[i]   BB 不管是不是數組指針,只要是指針就可以這樣用,當成了數組用

dim aa as long
dim bb as byte ptr
bb=@aa  'BB 指針,指向 aa 的內存
bb[0]=1  ' aa 是4字節的,這樣 BB 是字節指針,這樣可以對 aa 變量每個字節不同操作了
bb[1]=2
bb[2]=4
bb[3]=7

由于指針的特殊性,也注定了特殊用途,尤其是API,到處用的是指針,API傳來的是指針,我們就用指針

API需要指針參數,我們就用指針給它,這是最初的用法,自己寫的軟件里,你可以永遠不用指針,也沒關系,但是你理解指針后,會感覺很多地方,用指針比較方便??傊约很浖约鹤鲋?,指針只是編程的一種手段。


還有指針的指針,甚至還有指針的指針的指針 

dim aa as long ptr ptr
dim bb as long ptr ptr ptr '多級指針,具體可以有多少,不敢測試,因為腦子不夠用。


字符串變量可以直接當指針用

dim aa as string="dddddd"
print aa[0],aa[1]  
等同于
print asc(aa,1),asc(aa,2)
VB6里是這么寫
print asc(mid(aa,1,1)),asc(mid(aa,2,1))


因國家互聯網安全管理要求,關閉回帖功能。大家需要留言,請使用【勇芳軟件客服】即時聯系勇芳點此打開->>勇芳軟件客服
返回
聯系勇芳
一个人看的www视频播放中文_2012中文字幕电影_亚洲国产成人高清在线观看_中文字幕天堂最新版在线网