注冊 登錄
Office中國論壇/Access中國論壇 返回首頁

ganlinlao的個人空間 http://m.mzhfr.cn/?230471 [收藏] [復(fù)制] [分享] [RSS]

日志

FreeBasic中的指針基礎(chǔ)入門二----指針與數(shù)組的關(guān)系——冬瓜湯整理

已有 2525 次閱讀2014-9-30 22:18 |個人分類:FreeBasic| FreeBasic入門, Freebasic指針入門二

3、數(shù)組和指針的關(guān)系

數(shù)組的數(shù)組名其實可以看作一個指針。

例九:

Dim MyArray(9) as long={0,1,2,3,4,5,6,7,8,9}

Dim value as long

Value = MyArray(0)    /’也可以寫成:value=*MyArray ‘/

Value = Myarray(3)     也可以寫成:value = *(myarray+3)

Value=MyArray(4)     也可以寫成:value=*(MyArray +4)

一般而言 數(shù)組名 Myarray 代表數(shù)組本身,類型是 long,但如果把 array 看做指針的話,它指向數(shù)組的第 0 個單元,類型是 long ptr , 所指向的類型是數(shù)組單元的類型即long

 因此*Myarray 等于 0 就一點也不 奇怪了。

同理,Myarray+3 是一個指向數(shù)組第 3 個單元的指針,所以 *(array+3)等于 3

其它依此類推。

用下圖來顯示可能更直白一點:




注:在FreeBasic中,數(shù)組下標(biāo)的表示法是A(i),指針數(shù)組是用P[i]表示,這兩者有區(qū)別。

4、指針的運(yùn)算

     4.1指針的賦值運(yùn)算


     4.2、指針的算術(shù)運(yùn)算

指針可以加上或減去一個整數(shù)。

指針的這種運(yùn)算的意義和通常的數(shù)值的加減運(yùn)算的意義是不一樣的,以單元為單位。

例二:

Dim a(20) as string

Dim P as string ptr

P=@a(0)

P +=1

說明:在p +=1中,指針變量P被加了1。編譯器是這樣處理的:

它把指針P的值加上了sizeof(string)

 

注:兩個指針不能進(jìn)行加法運(yùn)算,這是非法操作。因為進(jìn)行加法后,

得到的結(jié)果指向一個不知道指向的地方,而且毫無意義。

在同一個數(shù)組中,兩個指針可以進(jìn)行減法操作,但必須類型相同。
         4.3、指針的關(guān)系運(yùn)算

5、指針與二維數(shù)組


評論 (0 個評論)

facelist doodle 涂鴉板

您需要登錄后才可以評論 登錄 | 注冊

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

GMT+8, 2025-7-13 03:14 , Processed in 0.066924 second(s), 17 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回頂部