栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

memset & memcpy

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

memset & memcpy

memset & memcpy memset

void *memset(void *str, int c, size_t n) 复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。

memset的头文件:

#include
// or
#include

memset可以用于赋值和初始化数组

因为char是1字节,memset是按照字节赋值的,所以,相当于把每个字节都设为输入的那个数。例如:

memset(dp,0,sizeof(dp));  

int类型的变量一般占用4个字节,对每一个字节赋值0的话就变成了00000000 00000000 000000000 00000000

memset(dp,-1,sizeof(dp));  

赋值为-1的话,放的是11111111 11111111 11111111 11111111

memset(dp,1,sizeof(dp));  

以上代码执行后,dp数组的内容为 00000001 00000001 00000001 00000001 转化为十进制后不为1

常用的memset操作
memset(a,127,sizeof(a))

将数组的全部元素,初始化为一个很大的数

memset(a,128,sizeof(a))

将数组的全部元素,初始化为一个很小的数

memcpy

void *memcpy(void *str1, const void *str2, size_t n) 从存储区 str2 复制 n 个字节到存储区 str1。

例子(来自菜鸟教程)

#include 
#include
 
int main()
 
{
  char *s="http://www.runoob.com";
  char d[20];
  memcpy(d, s+11, 6);// 从第 11 个字符(r)开始复制,连续复制 6 个字符(runoob)
  // 或者 memcpy(d, s+11*sizeof(char), 6*sizeof(char));
  d[6]='';
  printf("%s", d);
  return 0;
}

结果:

runoob
Reference

C++中memset()函数的用法详解

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/975014.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号