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

高端网站设计多少钱做机器人的网站

高端网站设计多少钱,做机器人的网站,平面设计图网站有哪些?,广州做网站优化费用创作不易#xff0c;友友们给个三连吧#xff01;#xff01; C语言标准库中有这样一些内存函数#xff0c;让我们一起学习吧#xff01;#xff01; 一、memcpy函数的使用和模拟实现 void * memcpy ( void * destination, const void * source, size_t num ); 1.1 使… 创作不易友友们给个三连吧 C语言标准库中有这样一些内存函数让我们一起学习吧 一、memcpy函数的使用和模拟实现 void * memcpy ( void * destination, const void * source, size_t num ); 1.1 使用的注意事项  1、函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。 2、这个函数在遇到 \0 的时候并不会停下来。 3、如果source和destination有任何的重叠复制的结果都是未定义的。 4、返回的是目标空间的地址destination 5、memcpy函数可以实现整型拷贝、字符拷贝、结构体拷贝等等所以参数和返回值都是void* int main() {int arr1[] { 1,2,3,4,5,6,7,8,9,10 };int arr2[10] { 0 };memcpy(arr2, arr1, 5 * sizeof(int));//将1、2、3、4、5 拷贝到arr2中for (int i 0; i 10; i)printf(%d , arr2[i]);return 0; } 输出结果1 2 3 4 5 0 0 0 0 0  如果我想将 4 5 6 7 8 拷贝到arr2呢 int main() {int arr1[] { 1,2,3,4,5,6,7,8,9,10 };int arr2[10] { 0 };memcpy(arr2, arr13, 5 * sizeof(int));//将4 5 6 7 8拷贝到arr2中for (int i 0; i 10; i)printf(%d , arr2[i]);return 0; } 输出结果4 5 6 7 8 0 0 0 0 0 这说明我们可以通过指针的加减来改变我们在数组中的接收地址  1.2 memcpy的模拟实现  void* my_memcpy(void* des, const void* src, size_t num) {assert(des src);//确保不传NULL进来void* ret des;//记住返回值//因为memcpy实现的是任何数据类型的拷贝且num是字节所以强转成char*进行运算最合适while (num--){//一次拷贝一个字节*(char*)des *(char*)src;////迭代 因为强制类型转化的效果是临时的要一直强转才能运算des (char*)des 1;src (char*)src 1;}return ret; } 二、memmove函数的使用和模拟实现 C语言规定memcpy拷贝的是不重叠的内存而memmove拷贝的是重叠的内存 void * memmove ( void * destination, const void * source, size_t num ); 虽然在vs2022中memcpy也是可以拷贝重叠内存的但是其他编译器就不一定了所以我们在使用的时候尽量是不重叠的用memcpy重叠的用memmove 2.1 使用的注意事项 1、和memcpy的差别就是memmove函数处理的源内存块和⽬标内存块是可以重叠的。 2、如果源空间和⽬标空间出现重叠就得使⽤memmove函数处理。 int main() {int arr1[] { 1,2,3,4,5,6,7,8,9,10 };int arr2[10] { 0 };memmove(arr12, arr1, 5 * sizeof(int));//将1、2、3、4、5 拷贝到原来3、4、5、6、7的位置for (int i 0; i 10; i)printf(%d , arr1[i]);return 0; } 输出结果1 2 1 2 3 4 5 8 9 10  2.2 memmove的模拟实现 void* my_memmove(void* dst, const void* src, size_t num) {assert(dst src);//确保不传NULL进来void* ret dst;//记住返回值if (dst src)//从前往后和memcpy一样{while (num--){//一次拷贝一个字节*(char*)dst *(char*)src;////迭代 因为强制类型转化的效果是临时的要一直强转才能运算dst (char*)dst 1;src (char*)src 1;}}else//从后往前while (num--)//要跳num-1个字节*((char*)dst num) *((char*)src num);return ret; } 三、memset函数的使用和模拟实现 void * memset ( void * ptr, int value, size_t num ); 3.1 使用的注意事项 memset是⽤来设置内存的将内存中的值以字节为单位设置成想要的内容。 int main () {char str[] hello world;memset (str,x,6);printf(str);return 0; } 输出结果xxxxxxworld  注意该函数是以字节为单位操作的 如果我们操作的是int类型的数组会怎样 int main() {int arr[] {1,2,3,4,5,6,7,8,9,10};memset(arr, 1, 10);for (int i 0; i 10; i)printf(%d , arr[i]);return 0; } 输出结果 16843009 16843009 257 4 5 6 7 8 9 10  为什么会是这样的结果下面进行分析  3.2 memset的模拟实现 void* my_memset(void* ptr, int value, size_t num) {while (num--){*(char*)ptr value;ptr (char*)ptr 1;} } 四、memcmp函数的使用 int memcmp ( const void * ptr1, const void * ptr2, size_t num ); 1、⽐较从ptr1和ptr2指针指向的位置开始向后的num个字节 2、返回值如下 int main() {int arr1[] { 1,2,3,4,5,6,7,8 };int arr2[] { 1,2,3,8 };printf(%d\n, memcmp(arr1, arr2, 12)); } 输出结果0  如果我们比较13个字符呢 int main() {int arr1[] { 1,2,3,4,5,6,7,8 };int arr2[] { 1,2,3,8 };printf(%d\n, memcmp(arr1, arr2, 13)); } 输出结果-1 因为小端存储所以arr1的第13个字节存储的是04而arr2的第13个字节存储的是08所以返回-1
http://www.hkea.cn/news/14435638/

相关文章:

  • 网站推广的策略方法长春seo建站
  • 响应式网站 尺寸合肥seo网站优化培训
  • 公司网站开发设计响应式网站的登录设置
  • 做网站购买服务器多少钱物联网网站设计
  • 网站网页模板够完美网站建设
  • 专门做网页设计网站网络推广的基本手段
  • 威海做企业网站镇江网站开发公司
  • 网站开发的公司属于什么行业成都网络公司优惠政策
  • 百度上搜不到网站wordpress 人物照片墙
  • 手机网站seo怎么做西宁网站建设建站
  • 书法网站模版ICP备案网站服务内容
  • wordpress网站会员太多百度竞价排名公司
  • 宜昌哪里做网站文创产品设计创意
  • 好网站建设公司收费自适应网站设计
  • 韩国做美食的视频网站有哪些外贸公司是什么类型的企业
  • 输入网址跳到别的网站wordpress搬家文章
  • 网站定做wordpress酷站
  • 房山青岛网站建设珠海做网站开发
  • 宜昌做网站公司html网站开发中的应用
  • 额尔古纳网站建设wordpress用户中心界面
  • 克拉玛依建设局网站互联网运营推广是做什么的
  • 机械外贸网站建设男生十大好就业专业
  • 请网站建设的人多少钱合肥网站开发需要多
  • discuz网站编码wordpress 备案 域名
  • title 镇江网站建设怎么样做兼职网站
  • 衡水电子商务网站建设免费论坛建站系统
  • 天津网站建设首选 津坤科技全国十大物联网平台公司
  • 西宁做网站君博解决好的企业网站建设
  • 做网站卖房写标题网页动态效果
  • 六安市城乡和建设局官方网站互联网营销师考试内容