注册 登录
Office中国论坛/Access中国论坛 返回首页

ganlinlao的个人空间 http://www.office-cn.net/?230471 [收藏] [复制] [分享] [RSS]

日志

FreeBasic中的指针基础入门二----指针与数组的关系——冬瓜汤整理

已有 2324 次阅读2014-9-30 22:18 |个人分类:FreeBasic| FreeBasic入门, Freebasic指针入门二

3、数组和指针的关系

数组的数组名其实可以看作一个指针。

例九:

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)

一般而言 数组名 Myarray 代表数组本身,类型是 long,但如果把 array 看做指针的话,它指向数组的第 0 个单元,类型是 long ptr , 所指向的类型是数组单元的类型即long

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

同理,Myarray+3 是一个指向数组第 3 个单元的指针,所以 *(array+3)等于 3

其它依此类推。

用下图来显示可能更直白一点:




注:在FreeBasic中,数组下标的表示法是A(i),指针数组是用P[i]表示,这两者有区别。

4、指针的运算

     4.1指针的赋值运算


     4.2、指针的算术运算

指针可以加上或减去一个整数。

指针的这种运算的意义和通常的数值的加减运算的意义是不一样的,以单元为单位。

例二:

Dim a(20) as string

Dim P as string ptr

P=@a(0)

P +=1

说明:在p +=1中,指针变量P被加了1。编译器是这样处理的:

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

 

注:两个指针不能进行加法运算,这是非法操作。因为进行加法后,

得到的结果指向一个不知道指向的地方,而且毫无意义。

在同一个数组中,两个指针可以进行减法操作,但必须类型相同。
         4.3、指针的关系运算

5、指针与二维数组


评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-20 14:59 , Processed in 0.065464 second(s), 17 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部