版权所有:nicrosoft
文章来源:东日制作室
大家都认为,c语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是c语言的灵魂,一点都不为过。同时,这种说法也让很多人产生误解,似乎只有c语言的指针才能算指针。basic不支持指针,在此不论。其实,pascal语言本身也是支持指针的。从最初的pascal发展至今的object pascal,可以说在指针运用上,丝毫不会逊色于c语言的指针。
以下内容分为八部分,分别是
一、类型指针的定义
二、无类型指针的定义
三、指针的解除引用
四、取地址(指针赋值)
五、指针运算
六、动态内存分配
七、字符数组的运算
八、函数指针
一、类型指针的定义。对于指向特定类型的指针,在c中是这样定义的:
int *ptr;
char *ptr;
与之等价的object pascal是如何定义的呢?
var
ptr : ^integer;
ptr : ^char;
其实也就是符号的差别而已。
二、无类型指针的定义。c中有void *类型,也就是可以指向任何类型数据的指针。object pascal为其定义了一个专门的类型:pointer。于是,
ptr : pointer;
就与c中的
void *ptr;
等价了。
三、指针的解除引用。要解除指针引用(即取出指针所指区域的值),c 的语法是 (*ptr),object pascal则是 ptr^。
四、取地址(指针赋值)。取某对象的地址并将其赋值给指针变量,
c 的语法是
ptr = &object;
object pascal 则是
ptr := @object;
也只是符号的差别而已。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器