日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
讓你知道VB.NET指針的作用

在生活中我們所看到的指針是真實(shí)的,可是在我們的編程中所謂的指針是感念性的,抽象的,讓人很難理解的。這里我們就詳細(xì)的談?wù)勱P(guān)于VB.NET指針問題。不需要去找什么標(biāo)準(zhǔn)的定義,它就是一個(gè)32位整數(shù),在C語(yǔ)言和在VB里都可以用Long類型來表示。在32位Windows平臺(tái)下它和普通的32位長(zhǎng)整型數(shù)沒有什么不同,只不過它的值是一個(gè)內(nèi)存地址,正是因?yàn)檫@個(gè)整數(shù)象針一樣指向一個(gè)內(nèi)存地址,所以就有了指針的概念。

創(chuàng)新互聯(lián)公司作為成都網(wǎng)站建設(shè)公司,專注網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),有關(guān)成都定制網(wǎng)站方案、改版、費(fèi)用等問題,行業(yè)涉及成都辦公窗簾等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。

#T#有統(tǒng)計(jì)表明,很大一部分程序缺陷和內(nèi)存的錯(cuò)誤訪問有關(guān)。正是因?yàn)橹羔樦苯雍蛢?nèi)存打交道,所以指針一直以來被看成一個(gè)危險(xiǎn)的東西。以至于不少語(yǔ)言,如著名的JAVA,都不提供對(duì)指針操作的支持,所有的內(nèi)存訪問方面的處理都由編譯器來完成。而象C和C++,指針的使用則是基本功,指針給了程序員極大的自由去隨心所欲地處理內(nèi)存訪問,很多非常巧妙的東西都要依靠指針技術(shù)來完成。

關(guān)于一門高級(jí)的程序設(shè)計(jì)語(yǔ)言是不是應(yīng)該取消指針操作,關(guān)于沒有指針操作算不算一門語(yǔ)言的優(yōu)點(diǎn),我在這里不討論,因?yàn)榛ヂ?lián)網(wǎng)上關(guān)于這方面的沒有結(jié)果的討論,已經(jīng)造成了占用幾個(gè)GB的資源。無論最終你是不是要下定決心修習(xí)指針技術(shù)《葵花寶典》,了解這門功夫總是有益處的。

注意:在VB里,官方是不鼓勵(lì)使用什么指針的,本文所講的任何東西你都別指望取得官方的技術(shù)支持,一切都要靠我們自己的努力,一切都更刺激!讓我們開始神奇的VB指針探險(xiǎn)吧!來看看VB.NET指針能做什么?有什么用?

先來看兩個(gè)程序,程序的功能都是交換兩個(gè)字串:

 
 
  1. '標(biāo)準(zhǔn)的做法SwapStr
  2. Sub SwapStr(sA As String, sB As String)
  3. Dim sTmp As String
  4. sTmp = sA: sA = sB: sB = sTmp
  5. End Sub
 
 
  1. '用指針的做法SwapPtr
  2. Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _ 
    (Destination As Any, Source As Any, ByVal Length As Long)Sub SwapPtr(sA As String, sB As String)
  3. Dim lTmp As Long
  4. CopyMemory lTmp, ByVal VarPtr(sA), 4
  5. CopyMemory ByVal VarPtr(sA), ByVal VarPtr(sB), 4
  6. CopyMemory ByVal VarPtr(sB), lTmp, 4
  7. End Sub

你是不是以為***個(gè)程序要快,因?yàn)樗粗?jiǎn)單而且不用調(diào)用API(調(diào)用API需要額外的處理,VB文檔明確指出大量調(diào)用API將降低程序性能)。但事實(shí)上,在VB集成環(huán)境中運(yùn)行,程序二要比程序一快四分之一;而編譯成本機(jī)代碼或p-code,程序二基本上要比程序一快一倍。下面是兩個(gè)函數(shù)在編譯成本機(jī)代碼后,運(yùn)行不同次數(shù)所花時(shí)間的比較:

 
 
  1. 運(yùn)行100000次,SwapStr需要170毫秒,SwapPtr需要90毫秒。
  2. 運(yùn)行200000次,SwapStr需要340毫秒,SwapPtr需要170毫秒。
  3. 運(yùn)行2000000次,SwapStr需要3300毫秒,SwapPtr需要1500毫秒。

的確,調(diào)用API是需要額外指令來處理,但是由于使用了VB.NET指針技術(shù),它沒有進(jìn)行臨時(shí)字串的分配和拷貝,因此速度提高了不少。


新聞標(biāo)題:讓你知道VB.NET指針的作用
網(wǎng)站路徑:http://www.dlmjj.cn/article/djehijs.html