float **bb;
float *z;
下面这句
*(*(bb+i)+j)=*(z+k);
如何用DELPHI表示?
定义为
bb:^PDouble;
z:PDouble;
再问一个很菜的问题,在过程定义中不能使用数组指针吗?
入
procedure abc(aa:^PDouble);
float *z;
下面这句
*(*(bb+i)+j)=*(z+k);
如何用DELPHI表示?
定义为
bb:^PDouble;
z:PDouble;
再问一个很菜的问题,在过程定义中不能使用数组指针吗?
入
procedure abc(aa:^PDouble);
解决方案 »
- Activex打包的公钥/私钥如何获得?另加200分
- 高手请进,如何当用户打开IE,访问某个页面做一个程序监视,替换指定内容。
- 高分提问!奇怪的问题,但是简单,开发过组件的近来看看 200409
- 清家荡产,算法大征集!(算法大师请进来)分不够再加!
- Numeric数据类型的显示问题?
- (平安夜平安!)Delphi中调用外部可执行文件的问题
- 看看,帮个忙!
- ”daoq:不能在一个打开的数据集上进行该操作“错误是怎么回事?
- 决心学习Delphi,请高手指点好的入门书籍和对初学者适用的网站,在线等
- 如何在ListView中出现上下排序箭头?
- 如何更加有效,更快的速度学会delphi?
- 求数字集合中的最大值
PPDouble = ^PDouble用PPDouble就可以做参数了
var
A : ^pinteger;
begin
A := @Button1;
Tbutton(A^).click;
end;
procedure abc(var aa: PDouble);在d2009以前,delphi中只有字符型的指针(PAnsiChar、PWideChar)可以直接使用 +、-、[] 等运算符,其它的只能通过 Inc、Dec、^ 来操作,这一点不同于c
在c中,a[b] 运算符和 *(a+b) 是等效的(也就是说,p[5]和5[p]都相当于*(p+5)),所以上面的式子相当于
bb[i][j] = z[k];我自己在d2009之前处理不需要密集计算的指针的时候,使用了这种trick:type
PDoublePlus = class
private
function GetData(Index: Integer): Double;
function GetAddr(Index: Integer): PDouble;
procedure SetData(Index: Integer; const Value: Double);
public
property Addr[Index: Integer]: PDouble read GetAddr;
property Data[Index: Integer]: Double read GetData write SetData; default;
end;...{ PDoublePlus }function PDoublePlus.GetAddr(Index: Integer): PDouble;
begin
Result := PDouble(Self);
Inc(Result, Index);
end;function PDoublePlus.GetData(Index: Integer): Double;
begin
Result := Addr[Index]^;
end;procedure PDoublePlus.SetData(Index: Integer; const Value: Double);
begin
Addr[Index]^ := Value;
end;在使用的时候,对于
var p: PDouble;
采用 PDoublePlus(p)[n] 的方式进行读写