成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

讓你知道VB.NET指針的作用

開發(fā) 后端
這里簡單的分析一下VB.NET指針的操作,指針就是一個(gè)32位整數(shù),在C語言和在VB里都可以用Long類型來表示,文章有詳細(xì)的介紹,希望對大家有幫助。

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

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

關(guān)于一門高級的程序設(shè)計(jì)語言是不是應(yīng)該取消指針操作,關(guān)于沒有指針操作算不算一門語言的優(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 = sAsA = sBsB = 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)樗粗唵味也挥谜{(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í)字串的分配和拷貝,因此速度提高了不少。

責(zé)任編輯:田樹 來源: 博客
相關(guān)推薦

2009-11-03 10:09:48

VB.NET對象

2009-11-03 13:54:55

VB.NET繼承

2010-01-14 10:35:34

VB.NET指針

2009-11-03 17:47:07

VB.NET借助API

2009-11-02 17:24:57

VB.NET語言

2010-01-21 17:34:48

VB.NET Bool

2009-10-14 15:20:21

VB.NET窗體指針

2009-11-10 16:46:52

VB.NET指針應(yīng)用

2009-11-02 16:05:51

VB.NET安裝工程

2009-12-24 14:30:56

VB.NET

2009-10-27 09:01:54

VB.NET內(nèi)存指針

2009-10-29 15:50:49

VB.NET Exce

2010-01-07 16:16:03

VB.NET變量作用域

2009-11-02 10:42:04

VB.NET EXCE

2009-10-28 14:44:43

VB.NET Name

2009-10-30 13:48:36

VB.NET指針

2009-11-02 09:43:01

VB.NET構(gòu)造函數(shù)

2010-01-21 16:30:58

VB.NET對象瀏覽器

2010-01-14 13:27:33

VB.NET操作符li

2010-01-15 10:32:06

VB.NET繼承
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美一区二区三区四区五区无卡码 | 这里只有精品99re | 青青草av网站 | 青青草视频网站 | 国产美女永久免费无遮挡 | 在线三级网址 | 91热在线 | 一区二区三区视频在线 | 久久精品亚洲精品 | 精品久久久久久久久久久久久 | 玖玖视频国产 | 成人高潮片免费视频欧美 | 亚洲欧美日韩中文字幕一区二区三区 | 人操人人干人 | 亚洲福利在线观看 | 北条麻妃一区二区三区在线观看 | 国产精品国产成人国产三级 | 精品一区欧美 | 国产欧美一区二区三区国产幕精品 | 久久久人| 一区二区在线不卡 | 精品免费在线 | 国产精品激情小视频 | 中文字幕一区二区不卡 | 中文字幕在线一区 | 久久久久久女 | 九九热在线免费观看 | 特一级毛片 | 天天干天天干 | 欧美一级视频在线观看 | 欧美亚洲一区二区三区 | 亚洲国产精品成人久久久 | 亚洲 中文 欧美 日韩 在线观看 | 免费人成在线观看网站 | 精品日韩在线 | 四虎影院免费在线播放 | 亚洲一区二区三区在线播放 | 精品国产欧美一区二区 | 亚洲不卡在线观看 | 精品1区2区 | 日日噜噜噜夜夜爽爽狠狠视频, |