bash
PROGRAM MAIN
VAR
a1 :ARRAY[1..10] OF INT;
a2 :ARRAY[1..10] OF INT;
i :INT;
p : POINTER TO INT;
p1: POINTER TO INT;
p2: POINTER TO INT;
pValue1 :INT;
pValue2 :INT;
END_VAR
FOR i:=1 TO 10 BY 1 DO
a1[i] := i+10;
END_FOR
p := ADR(a1[1]);
p1:= p+1;
p2:= p+2;
pValue1 := p1^;
pValue2 := p2^;
memcpy(ADR(a2[1]), p, 10);
这里采用两种方式分析指针:
- 对指针p分别加1、加2,然后取值,得到pvalue1、 pvalue2,可以发现只有加2时才指向正确的下一个int值:12,说明指针还是byte类型,需要加2个字节才到下一个int. 注意在c内,运行同样逻辑,pvalue1=12,pvalue2=13。

2.使用memcpy函数,拷贝10个字节,可以看到数组a2前五个int有值,这个只能说明memcpy是按字节长度拷贝数据
