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

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是按字节长度拷贝数据

相关推荐
add45a几秒前
C++中的工厂方法模式
开发语言·c++·算法
java1234_小锋1 分钟前
Java高频面试题:Spring-AOP通知和执行顺序?
java·开发语言·spring
番茄去哪了5 分钟前
Java基础面试题day02
java·开发语言·面向对象编程
xushichao19899 分钟前
C++中的工厂模式高级应用
开发语言·c++·算法
njsgcs9 分钟前
c# solidworks 折弯系数检查
开发语言·c#
SuperEugene13 分钟前
Vue3 + Element Plus 表格实战:批量操作、行内编辑、跨页选中逻辑统一|表单与表格规范篇
开发语言·前端·javascript
2501_9249526917 分钟前
C++模块化编程指南
开发语言·c++·算法
2401_8319207420 分钟前
基于C++的爬虫框架
开发语言·c++·算法
1104.北光c°21 分钟前
深入浅出 Elasticsearch:从搜索框到精准排序的架构实战
java·开发语言·elasticsearch·缓存·架构·全文检索·es
weixin_4219226928 分钟前
模板元编程性能分析
开发语言·c++·算法