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

可做推广的网站快速网站推广公司

可做推广的网站,快速网站推广公司,网站做app开发工具,找人搭建网站多少钱一、c语言内存函数 1、memcpy函数是一个标准库函数,用于内存复制。功能上是用来将一块内存中的内容复制到另一块内存中。用户需要提供目标地址、源地址以及要复制的字节数。例如结构体之间的复制。 memcpy函数的原型是:void* memcpy(void* …

一、c语言内存函数

1、memcpy函数是一个标准库函数,用于内存复制。功能上是用来将一块内存中的内容复制到另一块内存中。用户需要提供目标地址源地址以及要复制的字节数。例如结构体之间的复制。

memcpy函数的原型是:void* memcpy(void* dest,const void* src,size_t num)这里dest是目标指针、src是源指针,num是要复制的字节数。需要注意的是:src指向的内容在复制过程中不会被修改,所以用const修饰。

注意事项:

  1. 调用memcpy前需确保源内存与目标内存区域无重叠,否则应使用 memmove
  2. 目标缓冲区大小应足够容纳拷贝数据,防止发生缓冲区溢出
  3. 第三个参数表示拷贝的字节数,建议使用 sizeof 运算符进行计算
  4. 处理结构体或包含指针的数据时,需注意浅拷贝可能导致的问题
  5. 源指针和目标指针必须为有效指针,禁止传入空指针

注:strcpy只针对字符串,memcpy不在乎内存中存放什么数据,

#include<stdio.h>
#include<string.h>
int main()
{char src[] = "hello";char dest[10] = { 0 };memcpy(dest, src, sizeof(src));printf("%s\n", dest);return 0;
}

2、memmove函数(可以处理不重叠的情况)

void* memmove(void* dest,const void* src,size_t num),用户需要提供目标地址源地址以及要复制的字节数。这里dest是目标指针、src是源指针,num是要复制的字节数。需要注意的是:src指向的内容在复制过程中不会被修改,所以用const修饰。

#include<stdio.h>
#include<string.h>
int main()
{char str[] = "abcdefgh";//源和目标重叠,将从下标2的位置开始,复制5个字符到下标为4的位置memmove(str + 4, str + 2, sizeof(str));printf("%s\n", str);return 0;
}

3、memset内存设置函数

void* memset( void* ptr ,int value,size_t num),value是设置的值,ptr指向被填充的内存块,num是要修改的字节数。(将内存中的值以字节为单位设置成想要的内容;只能改字节,不能改元素)

int main()
{char str[] = "Hello,world";memset(str, '6', 5 * sizeof(char));printf("%s\n", str);return 0;
}

4、memcmp函数(内存比较)

int memcmp(const void* ptr1,const void* ptr2,size_t num),比较从ptr1和ptr2指针指向的位置开始向后的num个字节的内容,如果俩个内存的内容完全相同,函数返回0;若ptr1所指向的内存区域在字典序上小于ptr2所指向的内存区域,函数返回一个小于0的值;如果ptr1所指向的内存区域在字典序上大于ptr2所指向的内存区域,函数返回一个大于0的值。使用方法如下:

int main()
{char str1[] = "abcdefgz";char str2[] = "abcdefgj";int end=memcmp(str1, str2,8);printf("%d", end);return 0;

二、整型数据在内存中的存储

1、对于整形数组是来说:数据存放是放在内存中其实存放的是二进制的补码,在输出时要将补码换为原码!

2、大小端储存方式

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

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

三、浮点数在内存中的存储

任意一个二进制浮点数V可以表示成这种形式:V=(-1)^s*M*2^E,先将浮点数转换成二进制;(-1)^s表示符号位,s=0,V为正数,当s=1时,V为负数,M表示有效数字,M是大于等于1小于2的,2^E表示指数位。

先将浮点数转换为二进制。

对于32位的浮点数·(float),最高的1位存储符号位S,接着的8位存储指数E,剩下的23位存储有效数字M。

对于double类型的浮点数内存分配(8字节,64比特),存储方式符下:

在保存时M可以写成1.xxxxx的形式,其xxxxx表示小数部分。IEEE754规定在计算机内部保存M时,默认这个数第一位总是1,因此可以被消去。只保留1后的xxxxx部分就可以了,eg.1.01保存时只需要保存01,等读取时再把第一位加上,这样做是节省一位有效数字。

E是无符号整数,E为8位,它的取值范围是0-->255;如果E为11位,它的值为0-->2047.

科学计数法中E可以为负数,所以IEEE754规定,存入内存时E的真实值必须再加一个中间数,对于8为E,这个数是127;对于E是11位时,这个中间数是1023。

比如:2^10的E是10,所以保存为32位浮点数时,必须保存成10+127=137

即:10001001

E真实值+127/1023=E的存储值

浮点数取的过程中:

(1)E不全为0或者不全为1(常规情况)

0.5的二进制形式是0.1,规定有效数字部分必须为1,就是1.0*2^(-1),其阶码为-1+127=126(表示为:01111110),而尾数1.0去掉整部分后为0,补齐0到23位。如下图:以float储存为例:

(2)E全为0,此时浮点数的指数E(真实值)=1-127/1023,有效数字M不再加上第一位的1,而是还原为0.xxxxx的小数,这是表示正负0,以及接近0的很小的数字。

(3)E全为1,如果有效数字M全为0,表示正负无穷大。(正负取决于符号位S)

注:IEEE754是浮点数表示的标准

如有不足之处,请大家指出,谢谢!!!

http://www.dtcms.com/wzjs/222493.html

相关文章:

  • 推广 电子商务网站建设磁力岛
  • 光谷网站开发电子邮件营销
  • 把网站做静态化百度资源站长平台
  • 公司网站维护费大概需要多少赣州网站seo
  • wordpress站点地图无法读取网络促销方案
  • 山东振国网站建设网站流量排行
  • 能力天空的网站建设优劣势以服务营销出名的企业
  • 网站建设 运维 管理包括网络服务网络推广
  • 吴江网站设计酒店营销策划与运营
  • 音乐网站建设的目的免费b站推广网站入口202
  • 中国制造网网站建设的优势sem 优化价格
  • app对接网站登录要怎么做seo排名如何优化
  • 大鹏教育平面设计官网优化网络培训
  • 浚县网站建设处理事件seo软件
  • 网站seo新手百度账号注册平台
  • 珠海左右创意园网站开发青岛网站关键词优化公司
  • 企业建站套餐百度推广助手下载
  • 网站被屏蔽怎么访问企业网站建设公司
  • 深圳微商城网站制作价格站长工具 站长之家
  • 武汉网站设计的学校网站模版
  • 深圳大簇激光公司网站互联网营销师怎么报名
  • 常州做企业网站怎么推广游戏叫别人玩
  • 同步编辑wordpress丹东seo推广优化报价
  • 百度收录链接提交入口标题关键词优化技巧
  • 住房城乡建设部门户网站微博上如何做网站推广
  • 做网站一个月赚多少钱全国最新疫情最新消息
  • 国外黄色网站推荐搜狗收录提交
  • 中国建设银行的官方网站千峰培训
  • 哪家高端网站建设好最经典的营销案例
  • 网站分类查询今日油价最新