91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VB.NET中指針的作用是什么

發布時間:2021-06-25 14:46:38 來源:億速云 閱讀:259 作者:Leah 欄目:編程語言

VB.NET中指針的作用是什么,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

在生活中我們所看到的指針是真實的,可是在我們的編程中所謂的指針是感念性的,抽象的,讓人很難理解的。這里我們就詳細的談談關于VB.NET指針問題。不需要去找什么標準的定義,它就是一個32位整數,在C語言和在VB里都可以用Long類型來表示。在32位Windows平臺下它和普通的32位長整型數沒有什么不同,只不過它的值是一個內存地址,正是因為這個整數象針一樣指向一個內存地址,所以就有了指針的概念。

  • 妙用VB.NET窗體實現背景花紋

  • 教你如何制作VB.NET封面

  • 關于VB.NET編程原則規范總結

  • 談談關于VB.NET命名約定

  • 輕輕松松學習使用VB.NET常量

有統計表明,很大一部分程序缺陷和內存的錯誤訪問有關。正是因為指針直接和內存打交道,所以指針一直以來被看成一個危險的東西。以至于不少語言,如著名的JAVA,都不提供對指針操作的支持,所有的內存訪問方面的處理都由編譯器來完成。而象C和C++,指針的使用則是基本功,指針給了程序員極大的自由去隨心所欲地處理內存訪問,很多非常巧妙的東西都要依靠指針技術來完成。

關于一門高級的程序設計語言是不是應該取消指針操作,關于沒有指針操作算不算一門語言的優點,我在這里不討論,因為互聯網上關于這方面的沒有結果的討論,已經造成了占用幾個GB的資源。無論最終你是不是要下定決心修習指針技術《葵花寶典》,了解這門功夫總是有益處的。

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

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

'標準的做法SwapStr  Sub SwapStr(sA As String, sB As String)  Dim sTmp As String  sTmp = sA: sA = sB: sB = sTmp 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 

你是不是以為***個程序要快,因為它看著簡單而且不用調用API(調用API需要額外的處理,VB文檔明確指出大量調用API將降低程序性能)。但事實上,在VB集成環境中運行,程序二要比程序一快四分之一;而編譯成本機代碼或p-code,程序二基本上要比程序一快一倍。下面是兩個函數在編譯成本機代碼后,運行不同次數所花時間的比較:

運行100000次,SwapStr需要170毫秒,SwapPtr需要90毫秒。  運行200000次,SwapStr需要340毫秒,SwapPtr需要170毫秒。  運行2000000次,SwapStr需要3300毫秒,SwapPtr需要1500毫秒。

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

看完上述內容,你們掌握VB.NET中指針的作用是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

塔城市| 日照市| 南涧| 洛阳市| 财经| 二手房| 安国市| 衡阳县| 芒康县| 无为县| 建水县| 东至县| 通化县| 鄂尔多斯市| 红桥区| 科尔| 子洲县| 崇阳县| 文登市| 财经| 福建省| 巴林右旗| 靖边县| 凤阳县| 安平县| 商丘市| 久治县| 平邑县| 红河县| 黔南| 鄂尔多斯市| 泽州县| 西乌珠穆沁旗| 祥云县| 东源县| 姚安县| 峨眉山市| 呈贡县| 东乡族自治县| 洞口县| 水富县|