c的关于数组初始化 和 memset用法
2010-02-16 01:36
337 查看
今天为了彻底搞定一个关于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了,其余的还是 随意值
记录一下!
第二个问题 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用法
- C++语言复习七 数组的memset初始化 void指针的用法 举例
- 关于memset初始化动态数组:
- 关于memset初始化填充数组。
- 关于Java变量、数组、对象的声明、初始化与访问方式-----《疯狂Java突破程序员基本功的16课》读书笔记----第一章
- 关于数组的一些用法
- 关于字符数组的初始化
- char*动态数组用c++ifstream和ofstream进行文件读写并用memset初始化
- 关于初始化数组 c++ memset函数。和sizeof的一些说明。
- 关于pl/sql中数组初始化的问题
- 关于java数组的初始化
- 关于char数组初始化的一些细节
- memset 函数初始化用法
- JAVA中关于数组初始化的常用方法
- 关于全局数组的初始化
- memset初始化数组的问题
- 关于C#的垃圾回收以及List动态数组的用法。
- C#中数组初始化、反转和排序用法实例
- 用memset对非字符型数组初始化可能会出现错误
- 关于数组和数组初始化的问题