今天为了彻底搞定一个关于c中数组初始化和声明不同情况下,比如只声明一个数组char str[20];那么这str里面是什么内容呢?我用vc6++,debug下看到都是-56饿asc码,后来请教了一个华为的大牛,他说 按照理论来说里面的内容都是有可能的,这和叫做“脏内存”或者叫做“野数组”。好了第一个问题搞懂了。

第二个问题 memset的问题,之前在万臣解析fast协议的时候,因为是刚入门C,薄荷老大给我说一般声明了数组吼都用memset一下。当时不是很理解,但是现在这句话知道了。

举例一下:

比如 char str[20];

对于str的连续20个单元都是随意的值

char str[20] = "Hello World!";

这个时候对于str,前面的字符是 Hello World 紧接着是'/0';也就是说str尽管后面没用到的内存单元也是0了,不是随意值

如果 memset(str, 0, sizeof(str));

那么这句话也是把str的前sizeof(str)个单元都赋值给0

如果是memset(str, 1, 10)

那么这句话是把str的前10个单元都赋值给1了,其余的还是 随意值

记录一下!

c的关于数组初始化 和 memset用法相关推荐

  1. c++数组初始化与删除用法大全

    0.前言 大家公认的c++学习曲线比较陡峭,在我看来很重要一个原因就是c++语法比较灵活,要实现某个功能可能有好多种写法都能实现,所以很多时候就容易给大家带来困扰,搞不清楚为什么要这么写,或者这么写到 ...

  2. C、C++数组初始化,数组赋值

    原文发于:http://qing.weibo.com/2059598087/7ac2f907330029ze.html 在C/C++中,可以在数组定义的时候对其进行初始化: int a1[3] = { ...

  3. memset 数组初始化

    void *memset(void *s, int ch, size_t n) 1.功能是: 将s所指向的某一块内存中的前n个字节的内容全部设置为ch指定的ASCII值,  第一个值为指定的内存地址, ...

  4. C语言 数组初始化的三种常用方法({0}, memset, for循环赋值)以及原理

    C语言中,数组初始化的方式主要有三种: 1.声明时,使用 {0} 初始化: 2.使用memset: 3.用for循环赋值. 那么,这三种方法的原理以及效率如何呢? 请看下面的测试代码: [cpp] v ...

  5. memset 用法 linux,bzero, memset ,setmem 区别

    bzero 原型:extern void bzero(void *s, int n); 用法:#include 功能:置字节字符串s的前n个字节为零. 说明:bzero无返回值. 举例:       ...

  6. C++: 数组初始化

    文章目录 栈 动态数组 赋值 memset fill 栈 数组是底层数据类型,存放在栈中,其内存的分配和释放完全由系统自动完成. 通过如下代码初始化一个全局变量数组,初始化的规则就是不足数组大小的按默 ...

  7. C/C++数组初始化的一些误区

    以前我这样初始化一个数组,并自我感觉良好: int a[5] = { 0 }; // 全部初始化为0 这种简单的写法让我非常爽,于是我又想把数组全部初始化为1: int a[5] = { 1 }; / ...

  8. 【C 语言】数组 ( 数组本质 | 数组长度定义 | 数组初始化 | 编译时初始化 | 显式初始化 - 重置内存 )

    文章目录 一.数组本质 二.数组长度定义 三.数组初始化 1.编译时初始化 2.显式初始化 ( 重置内存 ) 一.数组本质 数组本质 : 类型角度 : 从 数组元素 类型角度分析 , 数组是 相同类型 ...

  9. 这样给数组初始化,你肯定没有见过

    今天在朋友圈看到一个朋友发的图片 是给数组初始化的代码 截图如下: 我看到这个代码,也让我着实惊了一下,写代码这么久,也没有见过这样子初始化的. 这个代码是出自海思的SDK里面的,华为的大牛还是很多啊 ...

最新文章

  1. PyTorch踩过的12坑 | CSDN博文精选
  2. Xamarin图表开发基础教程(8)OxyPlot框架
  3. 代码讲解java_主要代码的讲解
  4. HDU - 4622 Reincarnation(后缀自动机-查询区间本质不同子串个数)
  5. 打开 谷歌浏览器exe_python使用selenium调用谷歌浏览器打开指定网页
  6. java new 实例化_java中使用new实例化
  7. 《大话数据结构(C#实现)》(Yanlz+VR云游戏+Unity+SteamVR+云技术+5G+AI+软件架构设计+框架编程+数组+栈+链表+图+队列+树+堆+二叉树+哈希表+立钻哥哥+==)
  8. 【转】用java将pdf转换成jpg图片的代码
  9. html font设置字号,html font标签怎么设置字体大小
  10. 《Python自然语言处理》——1.1 语言计算:文本和词汇
  11. SSL协议与数字证书原理
  12. B-spline Curves 学习之B样条曲线定义(4)
  13. 【Python】数据分析.pandas.透视表与交叉表
  14. ubuntu16 无法调节亮度问题
  15. Linux介绍以及常用操作命令
  16. 特斯拉Model3车主称无法开启;传高通开发首款笔记本处理器;Dfinity挑战亚马逊 | 雷锋早报...
  17. python实操案例_Python数据分析基础实操案例
  18. 服务器不正常断电关机导致sqlserver被标记为“可疑”
  19. MySQL学习(8)︱DISTINCT去重与表连接
  20. Java-什么是软件?

热门文章

  1. 避免出现anr的方法_ANR原因及解决方法
  2. 在全局中谋一域_谋全局才能谋一域
  3. keil写文字怎么会乱码_朋友圈发婚纱照配文字怎么写?
  4. 2020-11-30 离散系统自适应控制中的一个关键性引理及证明
  5. Rancher2.0中邮件通知的设置
  6. 远程Service的显示 / 隐式启动
  7. 安装rabbitMQ delayed-messaged
  8. [Struts]Token 使用及原理
  9. [转].NET学习网站收集
  10. (数据科学学习手札61)xpath进阶用法