PASCAL中是否可以定义数组的元素为指针类型? 30
我今天试了一个程序,是关于图的邻接距阵转化为邻接表的程序如下:typepoint=^p1;p1=recordda:integer;next:point;end;vara:...
我今天试了一个程序,是关于图的邻接距阵转化为邻接表的
程序如下:
type
point=^p1;
p1=record
da:integer;
next:point;
end;
var
a:array[1..100,1..100]of integer;
c:array[1..100]of point;
p,q:point;
n,i,j,k:integer;
begin
readln(n);
for i:=1 to n do
for j:=1 to n do
read(a[i,j]);
for i:=1 to n do
begin
c[i]^.da:=i;c[i]^.next:=nil;
for j:=1 to n do
begin
if a[i,j]<>0 then begin
new(p);
p^.da:=j;
p^.next:=c[i]^.next;
c[i]^.next:=p;
end;
end;
end;
for i:=1 to n do
begin
write(c[i]^.da,' ');
q:=c[i]^.next;
while q<>nil do
begin
write(q^.da,' ');
q:=q^.next;
end;
writeln;
end;
end.
为什么不可以,谁可以解释一下 展开
程序如下:
type
point=^p1;
p1=record
da:integer;
next:point;
end;
var
a:array[1..100,1..100]of integer;
c:array[1..100]of point;
p,q:point;
n,i,j,k:integer;
begin
readln(n);
for i:=1 to n do
for j:=1 to n do
read(a[i,j]);
for i:=1 to n do
begin
c[i]^.da:=i;c[i]^.next:=nil;
for j:=1 to n do
begin
if a[i,j]<>0 then begin
new(p);
p^.da:=j;
p^.next:=c[i]^.next;
c[i]^.next:=p;
end;
end;
end;
for i:=1 to n do
begin
write(c[i]^.da,' ');
q:=c[i]^.next;
while q<>nil do
begin
write(q^.da,' ');
q:=q^.next;
end;
writeln;
end;
end.
为什么不可以,谁可以解释一下 展开
3个回答
展开全部
不可以,你可以定义一个指针数组(如*p[10])来存放指针
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在pascal里可以的定义
不要听楼上胡说,楼上用的是c语言(*p[10]是c语言)
不要听楼上胡说,楼上用的是c语言(*p[10]是c语言)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以的 如
new(p[10]);
把p[10]当指针操作
注意 定义是数组类型为指针
new(p[10]);
把p[10]当指针操作
注意 定义是数组类型为指针
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询