1916假烟和真烟的区别:指针[请先进入,有人答了,未必最佳]

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/30 00:55:39
请求给出:
(1)指针与一般变量的区别
(2)引入“指针”的原因(含其优点)
(3)一个“最(尽量)”简短的指针实例(Pascal的,包括声明和使用)

第3问pascal的
第1,2问随便

谢谢!~

指针是用来标志其他变量的变量,你可以通过指针访问(查看、修改)其他变量。从技术的角度讲,指针是比表示内存的一个位置的变量;从算法的角度讲,一个变量x,如果通过一个规则f(x)对应一个确定的变量或对象(数,图中的节点,链表中的一项等),x可以说是指向f(x)的指针。这样一个指针变量可以是一个实际内存地址,可以是整数(数组下标),甚至可以是一个字符串(Hash表、Trie之类实现,不过很少有人把串当做指针的)

用指针就使编程很灵活,可以动态分配内存,不必浪费太大空间。比如可意用来建立链表之类以及一些非线性(树、图、广义表、xxx....)的数据结构。

声明就
var
a:pointer;
b:^integer;
------------------
type
PNode=^Node;
Node=Record
next:pnode;
data:integer;
end;{链表}

访问就
type
kkk=^integer;
var
a:pointer;
b:^integer;{b:kkk;也可}
c:integer;
begin
{有下面几种语法}
new(b);
b^:=123;
c:=b^;
a:=b;
c:=kkk(a)^;
c:=b[0];{c:=b^}
dispose(b);
getmem(b,sizeof(integer)*(n+1));
c:=b[n];{c:=kkk(longint(b)+sizeof(integer)*n)^}
freemen(b,sizeof(integer)*(n+1));
end.

找本C语言书看就知道了

指针的值是内存的编号,如0x00000000;变量的值是被赋上的内容,如123,abcd等。
引入“指针”的原因:方便变量的调用。例如,当一个函数结束的时候,函数里的变量会被注销。但变量的值仍在内存里,而我们可以用主函数里的指针来调用该变量的值。

一句话说明指针:

就是在内存的物理地址

如果不太能理解这句话,应该再多多的去揣测一下

................