int i;			var i: integer;
int *ptr;		var ptr: integer^;
int ai[10];		var ai: array[0..9]
			        of integer;
ptr = (int *)
 malloc(sizeof(int));	new(ptr);
*ptr = *ptr + 1;	ptr^ := ptr^ + 1;
free(ptr);		dispose(ptr);
ptr = &i;		{ illegal! }
ptr = &ai[0];		{ illegal! }
ptr = ai;		{ illegal! }

int *p, *q, i = 3;
p = &i;
q = p;



----------------------------------

int *p; double *q;
p = q;

#include <stdio.h>

void next(int *ptr)
   /* effect: increment *ptr by 4 */
{
   *ptr += 4;
}

int main()
{
  extern void next(int *ptr);
  int i = 3;
  int *ptr = &i;
  next(&i);
  next(ptr);
  printf("%d %d\n", i, *ptr);
  return 0;
}

