設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

tag 標(biāo)簽: FreeBasic指針入門

相關(guān)帖子

版塊 作者 回復(fù)/查看 最后發(fā)表

沒有相關(guān)內(nèi)容

相關(guān)日志

分享 FreeBasic中的指針基礎(chǔ)入門一----理解指針變量——冬瓜湯整理
ganlinlao 2014-9-30 17:27
FreeBasic中的指針基礎(chǔ)入門一----理解指針變量——冬瓜湯整理
前言 對于使用VB的人,指針概念基本上是一片空白。而指針是C語言最大的特點。在FreeBasic中適當(dāng)?shù)赜煤弥羔,能帶來不少的便利和靈活性。對于指針是適當(dāng)使用而不是濫用。 因此理解指針概念,就變得相當(dāng)有意義了。 1、細說指針 指針是一個特殊的變量,它里面存儲的數(shù)值被解釋成為內(nèi)存里的一個地址。 要搞清一個指針需要搞清指針的四方面的內(nèi)容: 指針的類型、指針?biāo)赶虻念愋汀⒅羔樀闹担ɑ蛘呓兄羔標(biāo)赶虻膬?nèi)存區(qū))、指針本身所占據(jù)的內(nèi)存區(qū)。 讓我們分別說明: 先聲明幾個指針放著做例子: 例一: (1) 、 dim P as integer ptr (2) 、 dim P as string ptr (3) 、 dim P as integer ptr ptr (4) 、 dim P() as integer ptr 說明: 在 Freebasic 中聲明指針是用 ptr (或 pointer )這個關(guān)鍵字 Dim P as integer ptr ‘ 指針的類型是 integer Dim P as string ptr ‘ 指針的類型是 string 接下來看指針?biāo)赶虻念愋? Dim P as integer ptr ‘ 指針?biāo)赶虻念愋褪? integer Dim p as string ptr ‘ 指針?biāo)赶虻念愋褪? string 注:( 1 )指針的類型(即指針本身的類型)和指針?biāo)赶虻念愋褪莾蓚概念 ( 2 )指針的類型與指針?biāo)赶虻念愋途哂邢嗤念愋? 當(dāng)你對 FB 越來越熟悉時,你會發(fā)現(xiàn),把與指針攪和在一起的 " 類型 " 這個概念分成 " 指針的類型 " 和 " 指針?biāo)赶虻念愋? " 兩個概念,是精通指針的關(guān)鍵點之一。 指針的值 ---- 或者叫指針?biāo)赶虻膬?nèi)存區(qū)(地址)。指針的值是指針本身存儲的數(shù)值,這個值將被編譯器當(dāng)作一個地址,而不是一個一般的數(shù)值。 在 32 位程序里,所有類型的指針的值都是一個 32 位整數(shù),因為 32 位程序里內(nèi)存地址全都是 32 位長。 指針?biāo)赶虻膬?nèi)存區(qū)就是從指針的值所代表的那個內(nèi)存地址開始,長度為 sizeof( 指針?biāo)赶虻念愋? ) 的一片內(nèi)存區(qū)。 以后,我們說一個指針的值是 XX ,就是相當(dāng)于說該指針指向了以 XX 為首地址的一片內(nèi)存域; 我們說一個指針指向了某地塊內(nèi)存區(qū)域,就相當(dāng)于說該指的值是這塊內(nèi)存區(qū)域的首地址。 注:指針?biāo)赶虻膬?nèi)存區(qū)和指針?biāo)赶虻念愋褪莾蓚完全不同的概念。 在例 一中,指針?biāo)赶虻念愋鸵呀?jīng)有了,但由于指針還未初始化,所以它所指向 的內(nèi)存區(qū)是不存在的,或者說是無意義的。 以后,每遇到一個指針,都應(yīng)該問問: 這個指針的類型是什么?指針指 的類型是什么? 該指針指向了哪里?(重點注意) 4 指針本身所占據(jù)的內(nèi)存區(qū) 指針本身占了多大的內(nèi)存? 你只要用函數(shù) sizeof( 指針的類型 ) 測一下 就知道了 。 在 32 位平臺里,指針本身占據(jù)了 4 個字節(jié)的長度。 指針本身占據(jù)的內(nèi)存這個概念在判斷一個指針表達式(后面會解釋)是否是左值時很有用。 下面用圖來展示可能會更清晰: 指針與指針變量的理解: 2 、運算符 @ 和 * 在FreeBasic中 @ 是取地址運算符。 * 是間接運算符(取值運算符)
個人分類: FreeBasic|3148 次閱讀|0 個評論

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2025-7-13 07:47 , Processed in 0.077641 second(s), 13 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回頂部