一、C与PASCAL指针基本操作等价表
序号 |
情景 |
C语言 |
等价的pascal |
说明 |
1 |
类型指针的定义 |
char *charptr ; |
var charprt : ^char ; |
|
|
|
int *intptr ; |
var intptr : ^integer ; |
|
2 |
无类型指针的定义 |
void *p ; |
p:Pointer; |
|
3 |
指针的解除引用 |
(*p) |
P^ |
要解除指针引用(即取出指针所指区域的值) |
4 |
取地址 |
intptr=& i ; |
intptr:=@i ; |
取某对象的地址并将其赋值给指针变量 |
5 |
指针运算 |
intptr++ ; |
inc(intptr) ; |
编译器会产生让intptr前进sizeof(integer)步长的代码 |
|
|
intptr+=2 ; |
inc(intptr,2) ; |
|
6 |
动态内存分配 |
intptr=(int *) malloc(sizeof(int) * 20) ; |
GetMem(intptr, sizeof(integer)*20); |
分配20个整型变量空间 |
|
|
free(intptr) ; |
freeMem(intptr) ; |
释放分配的空间 |
二、字符数组的运算
C没有字符串类型,以字符数组方式来处理字符串,于是有一套str开头的库函数
char str[15];
char *pstr;
strcpy(str, "hello world");