当前位置: 首页 > news >正文

学习C语言(19)

整理今天的学习内容

1.memmove使用和模拟实现

void* memmove (void* destination,const void* source,size_t num);

和momcpy的差别是memmove函数处理的源内存块和目标内存块是可以重叠的

memmove的模拟实现:

 2.memset函数的使用

void* memset (void* ptr, int value, size_t num);

memset是用来设置内存的,将内存中的值以字节为单位设置成想要的内容

3.memcmp函数的使用

int memcmp(const void* ptr1, const void* ptr2, size_t num);

分别从ptr1和ptr2指向的位置开始向后比较num个字节

        

数据在内存中的储存

1.大小端字节序和字节序判断

超过⼀个字节的数据在内存中存储的时候,会遇到存储顺序的问题

储存顺序有两种:

大端(存储)模式:
数据的低位字节内容保存在内存的高地址处,而数据的高位字节内容保存在内存的低地址处
小端(存储)模式:
数据的低位字节内容保存在内存的低地址处,而数据的高位字节内容保存在内存的高地址处

2.练习题

(1)设计一个小程序来判断当前机器的字节序

 (2)解释程序运行的结果

128:原码:00000000 00000000 00000000 10000000

          反码:01111111 11111111 11111111 01111111

          补码:01111111 11111111 11111111 10000000

a:10000000

整型提升:11111111 11111111 11111111 10000000

打印的是无符号整数11111111 11111111 11111111 1000000+0

(3)解释程序运行的结果

将-1~-1000赋给char类型的变量

          a

00000000     0

00000001     1

00000010     2

00000011     3

......

01111111    127     

10000000 -->11111111 11111111 11111111 10000000-->10000000 00000000 00000000 01111111-->10000000 00000000 00000000 10000000    -128

10000001  -127

......

11111111   -1

所以从-1一直赋下去直到a中存的是0,最终结果是255

(4)

解释程序运行的结果

 当-1存入i时,补码为11111111 11111111 11111111 11111111,因为i是无符号整型,所以i被打印出来是一个很大的数,继续减1一直循环

(5)该代码运行环境是x86,小端字节序

解释程序运行的结果

ptr1略,a是数组首元素地址,这个数组在内存中的存放为:01 00 00 00 02 00 00 00 03 00 00 00   04 00 00 00  被强制转换为int类型,地址数值+1,再强转为int*类型,此时ptr2是00 00 00 02 的地址,用十六进制打印出来就是2000000


http://www.mrgr.cn/news/15972.html

相关文章:

  • ARM/Linux嵌入式面经(三二):百度
  • x264 编码器 AArch64汇编系列:zigzag 扫描相关汇编函数
  • 【ShuQiHere】从 FNN 到 RNN:用股票价格预测一步步理解神经网络的演化
  • 三星与海力士发力决战HBM4
  • 前端速通面经八股系列(六)—— Vue(下)
  • Cracking the Safe
  • [Algorithm][综合训练][合并k个已排序的链表][dd爱旋转][小红取数]详细讲解
  • AI自动采集教学行为——用AI来做机器学习部分和深度学习部分(含torch和cuda)包含机器学习模型和bert模型的使用
  • 计算机学习
  • python用波形显示udp数据实现一个模拟示波器
  • 事务的 ACID特性及如何保证的
  • SCI二区|吸血水蛭优化算法(BSLO)原理及实现【免费获取Matlab代码】
  • MFC工控项目实例之九选择下拉菜单主界面文本框显示菜单名
  • python办公自动化:使用`Python-PPTX`创建和操作表格
  • 【网络安全】打开这份“开学礼” 谨防骗子“冲业绩”
  • Docker私有镜像仓库Harbor安装并推拉镜像
  • 文本数据分析-(TF-IDF)(1)
  • 大语言模型算力优化策略:基于并行化技术的算力共享平台研究
  • 黑龙江等保测评流程
  • 内存泄漏是什么?发生在什么场景?如何解决?