倍福指针使用——始终为字节形式

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);

这里采用两种方式分析指针:

  1. 对指针p分别加1、加2,然后取值,得到pvalue1、 pvalue2,可以发现只有加2时才指向正确的下一个int值:12,说明指针还是byte类型,需要加2个字节才到下一个int. 注意在c内,运行同样逻辑,pvalue1=12,pvalue2=13。

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

相关推荐
初心未改HD4 小时前
Go语言database/sql与SQLx:构建健壮的数据访问层
开发语言·golang
晚风吹红霞4 小时前
C++异常处理核心知识点全解析
开发语言·c++
CoderCodingNo4 小时前
【信奥业余科普】C++ 的奇妙之旅 | 17:面的铺展与文本的本质——二维数组与字符串
开发语言·c++
J2虾虾4 小时前
Java Lambda 表达式详解文档
java·开发语言
csbysj20204 小时前
CSS 网格元素
开发语言
lly2024064 小时前
DOM 元素:深入理解与高效运用
开发语言
鸟儿不吃草4 小时前
安卓实现左右布局聊天界面
android·开发语言·python
曦夜日长5 小时前
C++ STL容器string(一):string的变量细节、默认函数的认识以及常用接口的使用
java·开发语言·c++
代码中介商5 小时前
C++ STL 标准模板库完全指南:从容器到迭代器
开发语言·c++·stl
winner88815 小时前
C++ 构造函数、析构函数、虚函数、虚析构
开发语言·c++